OSDN Git Service

PR c++/24686
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-11-11  Jason Merrill  <jason@redhat.com>
2
3         PR c++/24686
4         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore 
5         the cleanup list.
6
7 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
8
9         PR rtl-optimization/22509
10         * local-alloc.c (memref_used_between_p): Check whether a function call
11         could not reference the memref.
12
13 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
14
15         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
16         algorithm so as to choose the best, not the worst, alternative.
17         Reset accumulated register class before processing next alternative.
18
19 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20
21         PR target/24445
22         * calls.c (expand_call): Copy a return value to a plain register
23         if needed.
24
25 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
26
27         PR target/24778
28         * varasm.c (assemble_name): Recompute name only for transparent
29         aliases.
30
31 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
32
33         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
34
35 2005-11-04  Jeff Law  <law@redhat.com>
36
37         PR middle-end/23181
38         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
39         perform reassociation if the parent statement will not die as
40         a result of the optimization.
41
42 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
43
44         * tree-ssa-alias.c (compute_may_aliases): Remove call to 
45         delete_old_heap_vars.
46         * tree-dfa.c (referenced_var_remove): Remove function.
47         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
48         (delete_tree_ssa): Remove call to delete_old_heapvars.
49         Add call to delete_alias_heapvars.
50         * tree-flow.h (referenced_var_remove): Remove prototype
51         (init_alias_heapvars): New prototype.
52         (delete_alias_heapvars): Ditto.
53         * Makefile.in (tree-ssa-structalias.o): Add
54         gt-tree-ssa-structalias.o
55         (GTFILES): Add tree-ssa-structalias.h and
56         tree-ssa-structalias.c.
57         (s-gtype): Add gt-tree-ssa-structalias.h.
58         * tree-ssa-structalias.c (heapvars): Remove.
59         (oldheapvars): Remove.
60         (heapvar_for_stmt): New variable.
61         (heapvar_lookup): New function.
62         (heapvar_insert): Ditto.
63         (get_constraint_for): See if we have an old heapvar
64         to reuse.
65         (init_alias_heapvars): New function.
66         (delete_alias_heapvars): Ditto.
67         Add include of gt-tree-ssa-structalias.h.
68
69 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
70
71         PR middle-end/22127
72         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
73
74 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
75
76         * tree.c (int_fits_type_p): Only look at the base type
77         if it has the same precision as the original type.
78
79 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
80
81         PR other/4372
82         * varasm.c (assemble_alias): Use %q+D in the error
83         message instead of %J and %qD.
84
85 2005-11-10  Richard Guenther  <rguenther@suse.de>
86
87         * gcse.c (free_ldst_entry): Only free hashtable if
88         it exists.
89
90 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
91
92         * function.c (assign_stack_local_1): Issue an error message if
93         the frame size overflows in the signed target arithmetics.
94
95 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
96
97         * tree.c (build_qualified_type): Chain the new type to the original
98         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
99         a POINTER_TYPE or a REFERENCE_TYPE respectively.
100         (build_pointer_type_for_mode): Only return unqualified types.
101         (build_reference_type_for_mode): Likewise.
102
103 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
104
105         * Makefile.in (gnucompare): Do comparison of all files using one of
106         the chosen methods and only afterwards decide if just warning should
107         be issued or comparison failure raised.
108
109 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
110
111         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
112         (noce_try_abs): Negate if the comparison is reversed.
113         Look only one instruction backwards for a REG_EQUAL note.
114
115 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
116
117         PR other/4372
118         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
119         gthr-tpf.h: Define __gthrw.  For all identifiers that might
120         be weak, introduce weakrefs or non-weak aliases with __gthrw,
121         and prefix all uses with __ghtrw.
122
123 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
124
125         PR other/4372
126         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
127         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
128         * c-common.c (handle_weakref_attribute): New.
129         (c_common_attribute_table): Add weakref.
130         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
131         in the assembler.
132         * configure, config.in: Rebuilt.
133         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
134         * doc/extend.texi: Document weakref attribute.
135         * varasm.c (ultimate_transparent_alias_target): New
136         (assemble_name): Use it.
137         (weak_finish_1): Split out of...
138         (weak_finish): ... and deal with weakrefs in...
139         (weakref_targets): ... new list.
140         (globalize_decl): Clean up weakref_targets.
141         (do_assemble_alias): Handle weakrefs.
142         (finish_aliases_1): Do not reject weakrefs to external symbols.
143         (assemble_alias): Handle weakrefs.
144
145 2005-11-09  Richard Guenther  <rguenther@suse.de>
146
147         PR tree-optimization/24716
148         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
149         t_bool to track results from follow_ssa_edge.
150
151 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
152
153         * final.c (force_source_line): New global variable.
154         (final_scan_insn): Set it to true instead of clearing last_filename.
155         (notice_source_line): Return true if force_source_line is true,
156         unless source info is absent.
157
158 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
159
160         PR c/24644
161         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
162         a linkage name for a variable if it a register variable.
163         * c-decl.c (grokdeclarator): Global register variables
164         should be set as PUBLIC.
165
166 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
167
168         PR 24624
169         * config/s390/s390.c (struct s390_frame_layout): New fields 
170         first_save_gpr_slot and last_save_gpr_slot.
171         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,  
172         s390_emit_epilogue, s390_initial_elimination_offset): Replaced 
173         first_save_gpr and last_save_gpr with the _slot variants.
174         (s390_register_info): Calculate first_save_gpr_slot and 
175         last_save_gpr_slot using regs_ever_live.
176
177 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
178
179         PR 24623
180         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
181         for a function containing a landing pad.
182
183 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
184
185         PR 24034
186         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
187         is live afterwards.
188
189 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
190
191         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
192         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
193
194 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
195
196         Add ms2 support
197         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
198         constants.
199         (call,load,store): New insn types.
200         (mem_access, branch_access): Adjust reservation conditions.
201         (define_delay): Adjust condition.
202         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
203         type.
204         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
205         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
206         insn type.
207         (call_internal, call_value_internal, return_internal,
208         return_interrupt_internal, eh_return_internal, indirect_jump,
209         tablejump): Set call insn type.
210         (blockage, ei, di): Use appropriate unspec const.
211         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
212         (ms1_get_attr_type): Adjust to give load & store types.
213         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
214         backwards past a barrier.
215         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
216         branch scheduling.
217         (struct branch_info, struct label_info): New.
218         (ms1_labels): New.
219         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
220         (ms1_machine_reorg): New.
221         (TARGET_MACHINE_DEPENDENT_REORG): Override.
222         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
223         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
224         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
225         (TARGET_MS2): New.
226
227 2005-11-09  Per Bothner  <per@bothner.com>
228             Uros Bizjak  <uros@kss-loka.si>
229         
230         PR c/24101
231         * toplev.c (process_options): Initialize debug_hooks early
232         in case lang_hooks.post_options ends up calling a debug_hook.
233
234 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
235
236         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
237         DBX_REGISTER_NUMBER being contiguous.
238
239 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
240             Diego Novillo  <dnovillo@redhat.com>
241
242         PR 23046
243         * tree-vrp.c (register_edge_assert_for): Do not register
244         always-false predicates.
245
246 2005-11-08  Devang Patel <dpatel@apple.com>
247
248         PR tree-optimization/23115
249         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
250         relation.
251
252 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
253
254         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
255         -mcpu=440.
256
257 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
258
259         Fix PR tree-optimization/23382
260
261         * tree-ssa-alias.c (compute_may_aliases): Call
262         delete_old_heap_vars.
263         * tree-dfa.c (referenced_var_remove): New function.
264         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
265         * tree-flow.h (referenced_var_remove): Add prototype.
266         (delete_old_heap_vars): Ditto.
267         * tree-ssa-structalias.c (heapvars): New variable.
268         (oldheapvars): Ditto.
269         (get_constraint_for): Put heap vars on heapvars list.
270         (delete_old_heap_vars): New function.
271         
272 2005-11-08  Jason Merrill  <jason@redhat.com>
273
274         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
275
276 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
277
278         PR target/19340
279         * reg-stack.c (reg_to_stack): Update register liveness also
280         for flag_sched2_use_traces.
281
282 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
283
284         PR target/23704
285         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
286         override prior explicit -mno-powerpc-gfxopt.
287
288 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
289
290         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
291         if the bitsize is zero.
292         * doc/md.texi (Standard Pattern Names): Document it.
293
294         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
295         (TARGET_PASS_BY_REFERENCE): Likewise.
296
297 2005-11-07  Ian Lance Taylor  <ian@airs.com>
298
299         PR rtl-optimization/24683
300         * config/i386/i386.c (legitimize_pic_address): If constant operand
301         to PLUS is too large, put it in a register.
302
303 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
304
305         * configure.ac: Enable checking assembler dwarf2 support for bfin
306         target.
307         * configure: Regenerate.
308
309 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
310
311         PR target/24230
312
313         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
314         gen_easy_vector_constant_add_self): Delete.
315         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
316         New.
317         (output_vec_const_move): Use gen_easy_altivec_constant.
318         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
319         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
320         (easy_vector_constant_add_self): Rewritten.
321         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
322         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
323         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
324         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
325         Macroize and adjust for the other changes.
326
327 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
328
329         PR c/24599
330
331         * c-typeck.c (build_c_cast): Try using a shared constant, and see
332         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
333
334 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
335
336         PR rtl-optimization/23567
337         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
338         (noce_process_if_block): Don't do any optimizations except
339         if (cond) x = x; if !set_b and write into orig_x may trap
340         or fault.  Remove the MEM_READONLY_P check.
341
342 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
343
344         PR 24670
345         * tree-vrp.c (fix_equivalence_set): New.
346         (extract_range_from_assert): Call it.
347
348 2005-11-05  Ian Lance Taylor  <ian@airs.com>
349
350         PR target/22432
351         * combine.c (apply_distributive_law): Don't distribute across a
352         vector mode subreg.
353
354 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
355
356         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
357         config/ms1/ms1.h, config/rs6000/predicates.md,
358         config/s390/s390.c, params.def, postreload-gcse.c,
359         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
360         tree-vrp.c, tree.c: Fix comment typos.
361         * doc/invoke.texi: Fix typos.
362
363 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
364
365         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
366         for testing whether the data_dependence_relation contains distance
367         vectors.  Iterate over all distance vectors of the ddr.
368         * lambda.h: Define a vec of lambda_vector pointers.
369         * tree-data-ref.c (dump_data_dependence_relation,
370         dump_data_dependence_direction): Iterate over all distance and
371         direction vectors of the ddr.
372         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
373         DDR_DIST_VECTS.
374         (build_classic_dist_vector, build_classic_dir_vector): Push a set
375         of distance/direction vectors instead of a single one.
376         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist 
377         lambda_vectors with a vec of lambda_vectors.
378         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
379         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
380         DDR_NUM_DIST_VECTS): New.
381         * tree-loop-linear.c (gather_interchange_stats): Test for the
382         existence of distance vectors only after having checked that there
383         is a dependence.  Iterate over all distance vectors of the ddr.
384         (linear_transform_loops): Use dump_data_dependence_relation.
385         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
386         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
387         distance vectors of the ddr.
388
389 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
390
391         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
392         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
393         IS_INTHANDLER; all callers changed.
394         (n_regs_saved_by_prologue): Take interrupt handler attributes into
395         account.
396         (do_link, do_unlink): New argument ALL; all callers changed.
397         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
398         If function isn't leaf, save and restore all registers.
399         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
400         exception handler.
401
402 2005-11-05  Jan Hubicka  <jh@suse.cz>
403
404         PR rtl-optimization/23490
405         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
406         max-flow-memory-location): Document.
407         * flow.c: Include params.h
408         (MAX_MEM_SET_LIST_LEN): Kill.
409         (add_to_mem_set_list): Use new param.
410         * cse.c (cse_basic_block): Replace 1000 by new param.
411         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
412         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
413         * predict.c (predict_loops): Use new param.
414         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
415
416         * ipa-inline.c (cgraph_decide_inlining_of_small_function, 
417         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
418         Do not hold memory returned by cgraph_node_name across other call.
419
420 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
421
422         PR target/23424
423         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
424         Disable.
425
426 2005-11-04  Jeff Law  <law@redhat.com>
427
428         PR/21883
429         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
430         * tree-ssa-dom.c: Include params.h.
431         (thread_across_edge): If there are too many statements in the
432         target block, then do not thread through it.
433         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
434         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
435
436 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
437
438         PR 24627
439         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
440         TODO_update_ssa instead of TODO_update_ssa_no_phi.
441
442 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
443
444         PR/18595
445         * tree-scalar-evolution.c (instantiate_parameters_1,
446         instantiate_parameters, resolve_mixers): Compute the size of an
447         expression to be instantiated and give up the instantiation if the
448         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
449
450 2005-11-04  Richard Guenther  <rguenther@suse.de>
451
452         * tree-flow.h (ref_contains_indirect_ref): Rename to
453         array_ref_contains_indirect_ref.
454         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
455         (array_ref_contains_indirect_ref): Make comment match the code
456         and vice-versa.
457         (ref_contains_array_ref): Likewise.
458         * tree-ssa-structalias.c (find_func_aliases): Remove call to
459         ref_contains_indirect_ref.
460         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
461         Rename calls to ref_contains_indirect_ref.
462
463 2005-11-04 Paul Brook  <paul@codesourcery.com>
464
465         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
466         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
467         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
468         * config/arm/arm.md: Use match_operand in peephole input templates
469         and match_dup in peephole output templates.
470
471 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
472
473         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
474         __aeabi_uidiv.
475
476 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
477             Daniel Jacobowitz  <dan@codesourcery.com>
478
479         * longlong.h (add_ssaaaa): Clobber condition code register
480         in ARM version.
481         (sub_ddmmss): Likewise.
482         (umul_ppmm): Likewise.
483
484 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
485             Paul Brook  <paul@codesourcery.com>
486             Phil Blundell  <pb@reciva.com>
487
488         * configure.ac: Add test for ARM TLS support.
489         * configure: Regenerated.
490         * config/arm/arm-protos.h (legitimize_tls_address)
491         (arm_tls_referenced_p, tls_mentioned_p)
492         (arm_output_addr_const_extra): New prototypes.
493         (thumb_legitimize_pic_address): Delete.
494         * config/arm/arm.c: Include "gt-arm.h".
495         (enum tls_reloc): New.
496         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
497         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
498         (arm_call_tls_get_addr, legitimize_tls_address)
499         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
500         (arm_init_tls_builtins, arm_emit_tls_decoration)
501         (arm_output_addr_const_extra): New functions.
502         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
503         (TARGET_HAVE_TLS): Define.
504         (target_thread_pointer): New.
505         (arm_override_options): Handle -mtp=.
506         (legitimize_pic_address): Ignore UNSPECs.
507         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
508         relative symbols.
509         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
510         (tls_get_addr_libfunc): New variable.
511         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
512         (arm_init_builtins): Call arm_init_tls_builtins.
513         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
514         (arm_encode_section_info): Call default_encode_section_info.
515         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
516         (enum arm_tp_type): New.
517         (target_thread_pointer): Add declaration.
518         (LEGITIMATE_CONSTANT_P): Handle TLS.
519         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
520         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
521         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
522         * config/arm/arm.md: Add UNSPEC_TLS.
523         (movsi): Handle TLS.
524         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
525         non-PIC.
526         (tls_load_dot_plus_eight): New insn and a peephole to create it.
527         (load_tp_hard, load_tp_soft): New insns.
528         * arm.opt: Add -mtp=.
529         * doc/invoke.texi (ARM Options): Document -mtp.
530
531 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
532
533         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
534         * config/arm/libunwind.S: Include "lib1funcs.asm".
535         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
536         (LIB2ADDEH): Add libunwind.S.
537         (LIB2ADDEHDEP): Add lib1funcs.asm.
538         * mklibgcc.in: Handle asm files in libgcc_eh.a.
539
540 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
541
542         PR fortran/18452
543         * gcc/c.opt: Add a -lang-fortran option.
544         * gcc/c-opts.c: Add a lang_fortran flag.
545         (c_common_init_options): Handling the -lang-fortran option.
546         (c_common_handle_option): Add a case for Fortran options in
547         preprocessing. Remove cases for -ffixed-form and
548         -ffixed-line-length. Add a case for -lang-fortran.
549
550 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
551
552         * config/rs6000/rs6000.c: Include params.h
553         (optimization_options): Set max-grow-copy-bb-insns default to 16.
554         (bdesc_2arg): Delete vpkuhss and vpkuwss.
555         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
556         (UNSPEC_VPKUWSS): Delete.
557         (altivec_vpkuhss): Delete.
558         (altivec_vpkuwss): Delete.
559         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
560         final condition.
561         (neg_eq0<mode>): Remove final condition.
562         (neg_eq<mode>): Remove condition and split-condition.
563
564 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
565
566         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
567         Use associated print macros.
568
569 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
570
571         PR c++/17964
572         * diagnostic.c (diagnostic_set_info_translated): New function.
573         (diagnostic_set_info): Use it.  Add comment.
574         * diagnostic.h (diagnostic_set_info_translated): Declare.
575
576 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
577
578         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
579         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
580         reference only if 'public' is true.
581         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
582         emit the .hidden directive only if the indirect reference is public.
583         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
584         Pass it to dw2_force_const_mem.
585         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
586         * dwarf2out.c (output_cfi): Adjust calls to above function.
587         (output_call_frame_info): Likewise.
588         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
589         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
590
591 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
592
593         PR tree-optimization/24483
594         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
595         field to elts if possible.
596
597 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
598
599         PR middle-end/23155
600         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
601         CONSTRUCTOR.
602
603 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
604
605         Fix PR tree-optimization/24351
606
607         * tree-ssa-structalias.c (struct variable_info): Add
608         collapsed_into.
609         (get_varinfo_fc): New function to follow collapsing.
610         (new_var_info): Set collapsed_to to NULL.
611         (dump_constraint): Follow collapsing.
612         (build_constraint_graph): Handle collapsing.
613         (do_simple_structure_copy): Return false if something bad
614         happened.
615         (collapse_rest_of_var): New function.
616         (do_structure_copy): Collapse if do_simple_structure_copy returns
617         false.
618         
619 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
620
621         PR middle-end/24589
622         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
623         expressions to a statement list instead of gimplifying them.
624
625 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
626
627         PR rtl-optimization/23585
628         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
629         that can't trap plus a constant integer, if the mode has zero size.
630
631 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
632
633         PR target/24620
634         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
635         as operand 2.
636         ("*insv<mode>_reg_extimm"): Likewise.
637
638 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
639
640         PR c/24329
641         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
642         c_common_type_for_mode returns an unnamed type.
643
644 2005-11-02  Richard Henderson  <rth@redhat.com>
645
646         PR target/9350
647         PR target/24374
648         * dwarf2out.c (dwarf2out_reg_save_reg): New.
649         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
650         * function.c (assign_parms): Use calls.internal_arg_pointer.
651         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
652         code.
653         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
654         (TARGET_CALLS): Add it.
655         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
656         * targhooks.c (default_internal_arg_pointer): New.
657         * targhooks.h (default_internal_arg_pointer): Declare.
658         * tree.h (dwarf2out_reg_save_reg): Declare.
659         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
660         * config/i386/i386.c (dbx_register_map): Add return column.
661         (dbx64_register_map, svr4_dbx_register_map): Likewise.
662         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
663         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
664         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
665         (ix86_save_reg): Save force_align_arg_pointer.
666         (ix86_emit_save_regs): Make regno unsigned.
667         (ix86_emit_save_regs_using_mov): Likewise.
668         (ix86_expand_prologue): Handle force_align_arg_pointer.
669         (ix86_expand_epilogue): Likewise.
670         * config/i386/i386.h: (dbx_register_map): Update.
671         (dbx64_register_map, svr4_dbx_register_map): Update.
672         (struct machine_function): Add force_align_arg_pointer.
673         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
674         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
675         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
676
677 2005-11-02  Jan Hubicka  <jh@suse.cz>
678
679         PR target/23303
680         * i386.md: Add peep2 for simplyfing array accesses.
681
682 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
683
684         PR target/24615
685         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
686         * config/s390/s390.c (s390_decompose_shift_count): New function.
687         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
688         (print_shift_count_operand): Use s390_decompose_shift_count.
689         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
690         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
691
692 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
693
694         PR target/24600
695         * loop.c (loop_givs_rescan): Use force_operand to expand
696         complex GIVs.
697
698 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
699
700         PR 22429
701         * fold-const.c (build_range_check): Use unsigned when signed
702         overflow is undefined also.  If etype is subtype, make sure that
703         the subtraction is in the supertype.
704
705 2005-11-02  Richard Henderson  <rth@redhat.com>
706
707         PR target/24178
708         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
709         by MEM_ALIGN.
710
711 2005-11-01  Richard Henderson  <rth@redhat.com>
712
713         PR 21518
714         * loop.c (scan_loop): Do not propagate computations to a hard
715         register destination with SMALL_REGISTER_CLASSES.
716
717 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
718
719         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
720         costs for MULT inside PLUS or MINUS.
721
722 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
723
724         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
725         (TRAMPOLINE_SIZE): Round up to 60.
726         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
727
728 2005-10-31  James E. Wilson  <wilson@specifix.com>
729
730         PR debug/24444
731         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
732         ifdef.  Put ifdefs around call in gen_subprogram_die.
733         (compute_frame_pointer_to_cfa_displacement): Likewise.
734         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
735         not defined.
736         
737         PR rtl-optimization/17356
738         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
739         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
740
741 2005-10-31  Jan Hubicka  <jh@suse.cz>
742
743         PR middle-end/24093
744         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
745
746         PR target/20928
747         * i386.c (legitimize_pic_address): Deal with large immediates.
748
749         PR profile/20815
750         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
751         from symbol names while computing checkup.
752
753         PR profile/24487
754         * predict.c (predict_loops): Do not estimate more than
755         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
756         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
757
758 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
759         
760         PR tree-optimization/19097
761         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
762
763 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
764
765         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
766
767 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
768
769         PR middle-end/23492
770         * tree-inline.c (setup_one_parameter): If the init_stmt
771         is NULL, don't insert the statement.
772
773 2005-10-30  Jan Hubicka  <jh@suse.cz>
774
775         PR tree-optimization/24172
776         * tree-inline.c (copy_body_r): Unshare the substituted value first.
777
778 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
779
780         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
781         constants for hosts with long != 32 bits.
782
783 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
784
785         PR middle-end/24093
786         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
787
788 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
789
790         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
791         (TARGET_MS1_16_002): New.
792         (TARGET_MS1_16_003): New.
793
794         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
795         ("*decrement_and_branch_until_zero_no_clobber"): New.
796         Add corresponding splitter for decrement_and_branch_until_zero
797         instruction.
798         Key all decrement_and_branch_until_zero patterns off of
799         TARGET_MS1_16_003.
800
801 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
802
803         PR middle-end/24362
804         * tree-complex.c (extract_component): Treat RESULT_DECL
805         like the rest of the decls.
806
807 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
808
809         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
810         indirect call to _mcount if the function needs a static chain.
811
812 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
813             Caroline Tice  <ctice@apple.com>
814
815         PR rtl-optimization/24460
816         * dwarf2out.c (have_switched_text_sections): New boolean variable.
817         (dwarf2out_switch_text_section): Set it to true instead of
818         incrementing separate_line_info_table_in_use.
819         (output_loc_list): Additionally test have_switched_text_sections.
820         (output_ranges): Likewise.
821         (dwarf2out_finish): Likewise.
822         * varasm.c (assemble_start_function): Do not call
823         insert_section_boundary_note.
824         (assemble_end_function): If flag_reorder_blocks_and_partition,
825         switch to the function's section before emitting the .size directive.
826         * bb-reorder.c (insert_section_boundary_note): Staticify.
827         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
828         * output.h (insert_section_boundary_note): Delete.
829
830 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
831
832         PR c/23103
833         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
834         instead of pointer equality when comparing types.
835
836 2005-10-24  James E. Wilson  <wilson@specifix.com>
837
838         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
839         add_dependence_list_and_free calls.
840
841 2005-10-24  Steven Bosscher  <stevenb@suse.de>
842
843         * contrib.texi: Add the names of the LLNL folks who donated
844         Cray pointer support for gfortran.
845
846 2005-10-24  Steven Bosscher  <stevenb@suse.de>
847
848         PR tree-optimization/24225
849         * profile.c (branch_prob): Look from end to start through a
850         basic block when looking for a locus.
851
852 2005-10-24  Richard Henderson  <rth@redhat.com>
853
854         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
855         parallel.
856         (hppa_expand_prologue): Likewise.
857
858 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
859
860         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
861         (NO_DEFERRED_PROFILE_COUNTERS): Define.
862         * pa.h (NO_PROFILE_COUNTERS): Define.
863         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
864         (funcdef_nos): New vector to hold label numbers of deferred profile
865         counters.
866         (output_deferred_profile_counters): New function.
867         (hppa_profile_hook): Push label number onto funcdef_nos.
868         (pa_hpux_file_end): Call output_deferred_profile_counters if
869         NO_DEFERRED_PROFILE_COUNTERS is false.
870
871         * pa-protos.h (get_deferred_plabel): New prototype.
872         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
873         Make global.
874         (output_call): Adjust calls.
875
876 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
877
878         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
879         peculiarity of GOT/TOC section usage.
880
881 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
882
883         PR objc/24435
884          * c-common.c (constant_string_class_name): Add documentation.
885
886 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
887
888         PR target/23832
889         * recog.c (peephole2_optimize): Increment peep2_current_count
890         only when the slot is empty.
891
892 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
893
894         PR ada/23957
895         * except.c (output_function_exception_table): Call
896         assemble_external_libcall if we need a personality function.
897
898 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
899
900         PR rtl-optimization/24460
901         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
902         set the basic block for barriers.
903
904 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
905
906         * var-tracking.c (vt_initialize): Initialize post.
907
908 2005-10-21  Devang Patel  <dpatel@apple.com>
909
910         PR/24220
911         * c-common.c (vector_types_convertible_p): Check vector element type.
912         
913 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
914
915         * config/sh/sh.c (prepare_move_operands): Handle the address
916         constant which is a tls symbolic address plus a constant.
917
918 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
919
920         PR driver/24473
921         * gcc.c (main): Use the correct counter for erroring out
922         about mulitple files.
923
924 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
925
926         PR target/24465
927         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
928         use r2 for 64-bit tls .got access.
929
930 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
931
932         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
933         TRUTH_OR_EXPR.
934
935 2005-10-20  Steven Bosscher  <stevenb@suse.de>
936
937         PR tree-optimization/24307
938         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
939
940 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
941
942         PR middle-end/24295
943         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
944         alias targets.
945         * varasm.c (find_decl_and_mark_needed): After cgraph global info
946         is ready, stop marking functions, but still mark variables.
947
948 2005-10-20  Richard Guenther  <rguenther@suse.de>
949
950         PR c++/24439
951         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
952         void type operands.
953
954 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
955
956         PR rtl-optimization/23585
957         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
958         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
959         (may_trap_p_1): New predicate extracted from...
960         (may_trap_p): ... here.  Invoke may_trap_p_1.
961         (may_trap_or_fault_p): New predicate.
962         * rtl.h (may_trap_or_fault_p): Declare it.
963         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
964         instead of may_trap_p.
965         (steal_delay_list_from_fallthrough): Likewise.
966         (fill_simple_delay_slots): Likewise.
967         (fill_slots_from_thread): Likewise.
968         * function.c (pad_to_arg_alignment): Rework comment about
969         SPARC_STACK_BOUNDARY_HACK.
970         * config/sparc/sparc.h: Likewise.
971
972 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
973
974         * config/s390/s390.c (s390_expand_insv): New.
975         * config/s390/s390-protos.h (s390_expand_insv): Declare.
976         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
977         ("icm_hi"): Remove mode attribute.
978         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
979         Adjust all uses.
980         ("*extracthi", "*extractqi"): Remove.
981         (extv<mode>", "*extzv<mode>"): New.
982         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
983         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
984
985 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
986
987         * cfgexpand.c (discover_nonconstant_array_refs_r,
988         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
989         (tree_expand_cfg): Call discover_nonconstant_array_refs.
990         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
991         discover_nonconstant_array_refs.
992
993 2005-10-19  Steven Bosscher  <stevenb@suse.de>
994
995         PR c/23228
996         * c-decl.c (pop_scope): Don't warn about an unused variable
997         if it is marked with TREE_NO_WARNING.
998         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
999         somenow mismatch and olddecl is to be replaced.
1000
1001 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1002
1003         PR middle-end/23199
1004         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
1005         whether registers live on the edge can be saved/restored.
1006
1007 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1008
1009         * config/sh/sh.c (fixup_mova): Skip notes.
1010
1011 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1012
1013         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
1014         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
1015         (s390_can_eliminate): Handle BASE_REGNUM elimination.
1016         (s390_initial_elimination_offset): Likewise.
1017         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
1018         register on TARGET_ZARCH targets.
1019         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
1020         (INITIAL_FRAME_POINTER_OFFSET): Remove.
1021         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
1022         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
1023
1024 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1025
1026         * config/s390/s390.md: Comment describing output modifiers updated.
1027         * config/s390/s390.c (print_operand): Likewise.
1028
1029 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1030
1031         * config/s390/s390.c (override_options): Added check for -mstack-size
1032         64k limitation.
1033         * doc/invoke.texi: Mention that limit in the documenation.
1034
1035 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
1036
1037         PR #19672
1038         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
1039
1040 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
1041
1042         Fix PR tree-optimization/24231
1043
1044         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
1045         (compute_avail): Ditto.
1046
1047 2005-10-18  Richard Henderson  <rth@redhat.com>
1048
1049         PR target/24428
1050         * config/i386/i386.c (legitimate_constant_p): Check
1051         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
1052         if LABEL_REF.
1053         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
1054         (legitimate_pic_address_disp_p): Reorg CONST checking to make
1055         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
1056         directly.
1057         (print_operand_address): Likewise.
1058         * config/i386/predicates.md (x86_64_immediate_operand): Test
1059         SYMBOL_REF_TLS_MODEL properly inside CONST.
1060         (x86_64_zext_immediate_operand): Likewise.
1061         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
1062         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
1063         * config/i386/i386-protos.h: Remove predicates.md entries.
1064
1065 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
1066
1067         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
1068         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
1069
1070 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1071             Ian Lance Taylor <ian@airs.com>
1072
1073         PR middle-end/23522
1074         * fold-const.c (fold_widened_comparison): Do not allow range based
1075         constant folding when right operand cannot be unwidened.
1076
1077 2005-10-17  Richard Henderson  <rth@redhat.com>
1078
1079         * builtins.c (expand_builtin_synchronize): Build a new-style asm
1080         with a memory clobber.
1081
1082 2005-10-17  James E Wilson  <wilson@specifix.com>
1083
1084         PR rtl-optimization/17356
1085         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
1086         checking for EDGE_EH.
1087
1088 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1089
1090         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
1091         the slot on an even boundary for any type with 16-byte alignment.
1092
1093 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
1094
1095         PR target/23424
1096         * md.texi (Modifiers) <%>: Clarify that % doesn't work
1097         after register allocation.
1098
1099 2005-10-17  DJ Delorie  <dj@redhat.com>
1100
1101         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
1102         as frame related.
1103
1104 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
1105
1106         PR c++/22551
1107         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
1108         overflow flags.
1109
1110 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1111
1112         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
1113         to 2 if it's already non-zero.
1114         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
1115         is set and warn about it if flag_schedule_insns is 1.
1116
1117 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
1118
1119         * config/crx/crx.md: Compare-and-branch instructions need to
1120         invalidate CC.
1121
1122 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
1123
1124         PR target/24315
1125         * config/i386/i386.md (*pushdi2_rex64 splitter)
1126         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
1127         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
1128         flow2 pass only when (optimize > 0 && flag_peephole2).
1129
1130 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
1131
1132         PR driver/22544
1133         * gcc.c (have_c): New static variable.
1134         (have_o): Likewise.
1135         (process_command): Remove declation of have_c.
1136         Set have_o to 1 when handling -o.
1137         (main): Add a fatel error if there are multiple
1138         files specified and -o and -c/-S is passed witout
1139         -combine or multiple languages.
1140
1141 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
1142
1143         Fix PR tree-optimization/22444
1144         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
1145         Assert that we don't hit something with subvars.
1146         (setup_pointers_and_addressables): Don't add things with subvars,
1147         because we'll already process the subvars for aliasing purposes.
1148
1149 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
1150
1151         PR target/23424
1152         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
1153         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
1154         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
1155         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
1156         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
1157         swapped, alternatives for the R constraint.
1158
1159         PR middle-end/24341
1160         * builtins.c (get_builtin_sync_mode): Make unlimited
1161         mode_for_size request.
1162
1163 2005-10-15  Richard Henderson  <rth@redhat.com>
1164
1165         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
1166         (gimplify_expr): ... here.
1167         (gimplify_compound_lval): Use it in initial scan loop.  Allow
1168         fb_lvalue in base expression.
1169
1170 2005-10-15  Richard Henderson  <rth@redhat.com>
1171
1172         PR 23714
1173         * builtins.c (expand_builtin_trap): Export.
1174         * expr.h (expand_builtin_trap): Declare.
1175         * expr.c (expand_assignment): Emit a trap for integral offsets 
1176         from registers that weren't reduced to bitpos.
1177
1178         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
1179         (mark_array_ref_addressable): Remove.
1180         * tree-flow.h (mark_array_ref_addressable): Remove.
1181         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
1182
1183 2005-10-15  James E Wilson  <wilson@specifix.com>
1184
1185         PR target/24232
1186         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
1187         (add_dependence_list_and_free): Likewise.
1188         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
1189         call.
1190
1191 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
1192
1193         PR 23141
1194         PR 23142
1195         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
1196         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
1197         anti-range.
1198         (vrp_visit_phi_node): Only prevent infinite iterations when
1199         the previous result and the new result are both VR_RANGEs.
1200
1201 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
1202
1203         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
1204         function comment.
1205
1206 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1207
1208         PR c/23439
1209         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
1210         to initialize loc.
1211
1212 2005-10-14  Per Bothner  <per@bothner.com>
1213
1214         PR preprocessor/21250
1215         * c-ppoutput.c (print_line): Print internal line 0 as 1.
1216
1217 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
1218
1219         PR c++/22551
1220         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
1221         overflow flags.  Refactor some conditionals.
1222
1223 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1224
1225         PR tree-opt/21304
1226         * tree-dfa.c (add_referenced_var): Only look at decls which
1227         have TREE_CONSTANT or TREE_READONLY set instead of if
1228         !TREE_PUBLIC or !TREE_CONSTANT.
1229
1230 2005-10-13  James E Wilson  <wilson@specifix.com>
1231
1232         * doc/invoke.texi: For -x, add f95-cpp-input.
1233         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
1234
1235 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
1236
1237         PR tree-optimization/24262
1238         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
1239         in loop all the time.
1240
1241 2005-10-12  Richard Henderson  <rth@redhat.com>
1242
1243         PR c/24255
1244         * tree.h (DECL_TRANSPARENT_UNION): Remove.
1245         * function.c (assign_parm_find_data_types): Don't support it.
1246         * print-tree.c (print_node): Likewise.
1247         * c-common.c (handle_transparent_union_attribute): Likewise.
1248         Use build_duplicate_type.
1249         * tree-inline.c (remap_type_1): Split out of remap_type;
1250         properly remap aggregate fields.
1251         (build_duplicate_type): New.
1252         * doc/extend.texi (Variable Attributes): Remove documentation
1253         for transparent_union.
1254
1255 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1256
1257         PR target/24284
1258         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
1259         (gen_stack_pointer_dec): Likewise.
1260
1261 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
1262
1263         PR middle-end/21275
1264         PR middle-end/21766
1265         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
1266         target hook.
1267         (struct cxx): Add adjust_class_at_definition target hook.
1268         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
1269         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
1270         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to 
1271         hook_void_tree. Add to TARGET_CXX.
1272         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
1273         dllimport_flag.
1274         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
1275         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
1276         instead of attribute. Check for dllexport override.  Warn if
1277         inconsistent dll linkage. Don't lose old dllimport if decl has
1278         had address referenced.   Tweak lookup of dllimport atribute.  
1279         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
1280         for target specific rules.  Don't add dllimport attribute if
1281         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
1282         dllimport attribute. 
1283         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
1284         * varasm.c (initializer_constant_valid_p): Replace
1285         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
1286
1287         PR target/21801
1288         PR target/23589
1289         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to 
1290         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
1291         (i[34567]86-*-mingw32*): Likewise.
1292
1293         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
1294         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
1295                         
1296         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
1297         C++-specific code. Change return value to bool. 
1298         (i386_pe_dllimport_p): Likewise.
1299         (associated_type): Simplify and make language-independent
1300         (i386_pe_encode_section_info): Replace override of ambiguous
1301         dllimport symbol refs with a gcc_assert.
1302         (i386_pe_valid_dllimport_attribute_p): Define.
1303         * config/i386/winnt-cxx.c: New file. Define C++ versions of
1304         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
1305         i386_pe_adjust_class_at_definition.
1306         * config/i386/winnt-stubs.c: New file. Define stub versions of
1307         lang-specific functions.
1308         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
1309         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, 
1310         i386_pe_adjust_class_at_definition.
1311         (i386_pe_valid_dllimport_attribute_p): Declare. 
1312         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
1313         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
1314         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
1315
1316         PR target/19704
1317         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
1318         dllimport attribute with test of DECL_DLLIMPORT_P.
1319
1320 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
1321
1322         * combine.c (make_extraction): Correct offset computation.
1323
1324 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
1325
1326         * config/cris/t-linux (LIMITS_H_TEST): Define.
1327
1328 2005-10-12  Richard Henderson  <rth@redhat.com>
1329
1330         PR rtl-opt/23324
1331         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
1332
1333 2005-10-12  Richard Guenther  <rguenther@suse.de>
1334
1335         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
1336
1337 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
1338
1339         PR c++/19964
1340         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
1341         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
1342         type.
1343
1344 2005-10-12  Richard Guenther  <rguenther@suse.de>
1345
1346         PR c++/23799
1347         * varasm.c (output_constant): Correct typo from previous
1348         patch by DJ.
1349
1350 2005-10-11  Ian Lance Taylor  <ian@airs.com>
1351
1352         PR rtl-optimization/13931
1353         * combine.c: Revert patch of 2003-05-14, and:
1354         (try_combine): Only set elim_i1 and elim_i2 if the destination is
1355         completely killed in the appropriate insn.
1356         (distribute_notes): Don't skip multiple hard register test for
1357         elim_i1 and elim_i2.
1358
1359 2005-10-11  Richard Henderson  <rth@redhat.com>
1360
1361         PR c/24255
1362         * c-typeck.c (convert_for_assignment): Use build_constructor_single
1363         to initialize a transparent union instead of a nop_expr.
1364
1365 2005-10-11  Richard Henderson  <rth@redhat.com>
1366
1367         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
1368         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
1369         (tree_ssa_dce_loop): Call scev_reset.
1370
1371         PR tree-opt/24300
1372         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
1373         * tree-ssa-dce.c: Include cfgloop.h.
1374         (tree_ssa_dce_loop, pass_dce_loop): New.
1375         * tree-pass.h (pass_dce_loop): Declare it.
1376         * passes.c (init_optimization_passes): Use it.
1377
1378 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1379
1380         PR middle-end/24263 
1381         * convert.c (convert_to_real): Revert 2005-10-05 patch.
1382         Only apply the optimization for rounding builtins if the inner
1383         cast is also an extension.
1384
1385 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1386
1387         PR tree-opt/23946
1388         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
1389         mark_new_vars_to_rename instead of update_stmt.
1390
1391 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1392
1393         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
1394
1395 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
1396
1397         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
1398         for setting MMX register to 0 rather than mmx.
1399
1400 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
1401
1402         PR target/12098
1403         * configure.ac: Move gas check from mips specific case to common case.
1404         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
1405         * configure: Regenerate
1406         * doc/install.texi: Update.
1407
1408 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1409
1410         PR target/24284
1411         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
1412
1413 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
1414
1415         * gcc.c (do_spec_1): Accept numeric characters in file name
1416         suffixes.
1417
1418 2005-10-10  Nick Clifton  <nickc@redhat.com>
1419
1420         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
1421         describing the deleted arm_gen_rotated_half_load function.
1422
1423 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1424
1425         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
1426         __fpscr_values.
1427
1428 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
1429
1430         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
1431         gnu_ld assignments.
1432         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
1433         (EXTRA_MULTILIB_PARTS): Define.
1434         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
1435         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
1436         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
1437         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
1438         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
1439         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
1440
1441 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
1442
1443         PR tree-optimization/24226
1444         * tree-cfg.c (remove_bb): Clean up unreachable loops.
1445         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
1446         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
1447         Export.
1448
1449 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1450
1451         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
1452
1453 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1454
1455         PR target/24136
1456         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
1457         Rewrite for no need for the early clobber.
1458
1459 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
1460
1461         Merge from csl-arm-branch:
1462         2005-09-07  Paul Brook  <paul@codesourcery.com>
1463         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
1464         space to string.
1465
1466         2005-04-30  Paul Brook  <paul@codesourcery.com>
1467         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
1468         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
1469
1470         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
1471         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
1472         (arm_override_options): Use TARGET_AAPCS_BASED.
1473         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
1474         (PTRDIFF_TYPE): Use int for AAPCS.
1475         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
1476         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
1477         (DEFAULT_SHORT_ENUMS): Delete.
1478         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
1479
1480         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
1481         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
1482         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
1483         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
1484
1485         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
1486         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
1487
1488         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
1489         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
1490  
1491         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
1492         * config.gcc (arm*-*-linux-gnueabi): Add it.
1493         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
1494         redefining it.
1495         (TARGET_OS_CPP_BUILTINS): Likeiwse.
1496         * config/arm/linux-eabi.h: New file.
1497         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
1498         (LINUX_TARET_LINK_SPEC): Likewise.
1499         (LINK_SPEC): Use it.
1500         * config/arm/t-linux-eabi: New file.
1501
1502 2005-10-08  Steven Bosscher  <stevenb@suse.de>
1503
1504         PR other/22202
1505         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
1506         spaces.
1507         (PARAM_SMS_DFA_HISTORY): Likewise.
1508
1509 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
1510
1511         PR middle-end/23150
1512         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
1513         (load_register_parameters): Call it.
1514         (check_sibcall_argument_overlap_1): Likewise.
1515         (store_one_arg): Likewise.
1516
1517 2005-10-07  James E. Wilson  <wilson@specifix.com>
1518
1519         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
1520         DImode not VECINT24 for operand 2.
1521
1522         PR target/23644
1523         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
1524         -mtune-arch.
1525
1526         PR target/24193
1527         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
1528         fr_spill): Use destination_operand for operand 0.
1529
1530 2005-10-07  DJ Delorie  <dj@redhat.com>
1531
1532         * varasm.c (output_constant): Limit error to expanding
1533         conversions.
1534
1535 2005-10-07  Richard Guenther  <rguenther@suse.de>
1536
1537         PR middle-end/24227
1538         * fold-const.c (fold_binary): Fix operand types during folding
1539         of X op (A, Y).  Evaluation order of the side-effects of
1540         X and A are frontend-defined, so ensure we honour that even for
1541         tcc_comparison class operands; eased by removing duplicate code.
1542
1543 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
1544
1545         * stor-layout.c (layout_type): Do not allow alignment of array
1546         elements to be greater than their size.
1547
1548 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
1549
1550         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
1551         host_xmake_file.
1552         (hppa*-*-linux*): Ditto.
1553         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
1554         * config/host-hpux.c: New.
1555         * config/x-hpux: New.
1556         * config/pa/x-hpux: Remove.
1557         * config/pa/x-linux: Remove.
1558         * config/pa/pa-host.c: Remove.
1559
1560 2005-10-07  Jeff Law  <law@redhat.com>
1561
1562         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
1563         determine whether or not to try and thread outgoing edges.
1564
1565 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
1566
1567         * config/rs6000/rs6000.md (eqsi_power): New.
1568         (neg_eq0si): Add TARGET_POWER to final condition.
1569         (neg_eqsi): Same.
1570
1571 2005-10-06  Richard Henderson  <rth@redhat.com>
1572
1573         * config/rs6000/rs6000.c: Revert last change.
1574
1575 2005-10-06  Richard Henderson  <rth@redhat.com>
1576
1577         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
1578         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
1579
1580 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1581
1582         PR middle-end/22216
1583         PR middle-end/23651
1584         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
1585         out return_label and naked_return_label.
1586
1587 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
1588         
1589         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
1590         change.
1591
1592 2005-10-06  Richard Henderson  <rth@redhat.com>
1593
1594         PR tree-opt/22237
1595         * tree-inline.c (declare_return_variable): Handle modify_dest not
1596         being a DECL.
1597
1598 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
1599         
1600         Fix PR tree-optimization/22488
1601         * tree-ssa-structalias.c (check_for_overlaps): New function.
1602         (create_variable_info_for): Use it.
1603
1604 2005-10-06  Richard Henderson  <rth@redhat.com>
1605
1606         PR debug/24070
1607         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
1608         (dwarf2out_start_source_file): Print it.
1609
1610 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
1611
1612         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
1613
1614 2005-10-06  Richard Henderson  <rth@redhat.com>
1615
1616         PR 23706
1617         * mode-switching.c (optimize_mode_switching): Clear transp bit
1618         for block with incomming abnormal edges.
1619
1620         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
1621         (fpscr_set_from_mem): Use them.
1622         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
1623         (fpscr postinc splitters): Rewrite as peephole2+split.
1624
1625 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
1626
1627         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
1628         (eq<mode>_compare): Same.
1629
1630 2005-10-06  Richard Guenther  <rguenther@suse.de>
1631
1632         PR tree-optimization/24238
1633         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
1634
1635 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
1636
1637         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
1638         here.  Use AC_PATH_PROG for environment variables instead of
1639         test -x.
1640         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
1641         objdump also.
1642         * configure: Regenerated.
1643
1644 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
1645
1646         PR target/23783
1647         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
1648         then force it into a register.
1649         (call_value): Likewise.
1650
1651 2005-10-06  Richard Henderson  <rth@redhat.com>
1652
1653         PR 24049
1654         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
1655         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
1656         under pass_vectorize.
1657
1658 2005-10-05  Devang Patel  <dpatel@apple.com>
1659
1660         PR Debug/23205
1661         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
1662         handling constants. Check NAMESPACE_DECL context for constants.
1663         
1664 2005-10-05  Eric Christopher  <echristo@apple.com>
1665
1666         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
1667
1668 2005-10-05  Richard Henderson  <rth@redhat.com>
1669
1670         PR 23714
1671         * tree-cfg.c (mark_array_ref_addressable_1): New.
1672         (mark_array_ref_addressable): New.
1673         * tree-flow.h (mark_array_ref_addressable): Declare.
1674         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
1675
1676 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
1677
1678         PR middle-end/20606
1679         PR middle-end/24069
1680         * reload.c (subst_reloads): When adding a REG_LABEL to a
1681         jump instruction, also update JUMP_LABEL.
1682
1683 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
1684
1685         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
1686         * bb-reorder.c (copy_bb_p): Use it.
1687         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
1688
1689 2005-10-05  Richard Henderson  <rth@redhat.com>
1690
1691         PR target/23602
1692         * toplev.c (process_options): Warn about unsupported combinations
1693         of unwind tables and omit-frame-pointer.
1694         * config/i386/i386.c (override_options): Similarly.  Enable
1695         accumulate-outgoing-args if not explicitly disabled.
1696
1697 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
1698
1699         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
1700         Handle big endian vs. small endian.
1701         (vec_initv2sf): Handle big endian vs. small endian.
1702         (*vec_extractv2sf_1): Ditto.
1703
1704 2005-10-05  Dale Johannesen  <dalej@apple.com>
1705
1706         * convert.c (convert_to_real):  Don't convert
1707         (float)floor(double d) to floorf((float)d).
1708
1709 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
1710
1711         * config/arm/arm.md (insv): Use gen_int_mode in more places.
1712
1713 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
1714
1715         PR tree-optimization/18587
1716         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
1717         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
1718         build_vuses): Change to VEC type.
1719         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
1720         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
1721         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
1722         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
1723         (get_name_decl): New.  Return DECL_UID of base variable.
1724         (operand_build_cmp): New.  qsort comparison routine.
1725         (operand_build_sort_virtual): New.  Sort virtual build vector.
1726         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
1727         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
1728         (FINALIZE_BASE): Use get_name_decl.
1729         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
1730         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
1731         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
1732         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
1733         direct VEC_* manipulations.
1734         (build_ssa_operands): Call operand_build_sort_virtual.
1735         (copy_virtual_operand, create_ssa_artficial_load_stmt,
1736         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
1737         with direct VEC_* manipulations.
1738         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
1739         with direct VEC manipulations.
1740
1741 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
1742
1743         PR tree-optimization/21419
1744         PR tree-optimization/24146
1745         PR tree-optimization/24151
1746
1747         * c-typeck.c (readonly_error): Handle USE being lv_asm.
1748         (build_asm_expr): Call it if outputs are read-only.
1749         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
1750
1751 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
1752             Paolo Bonzini  <bonzini@gnu.org>
1753
1754         PR target/23809
1755
1756         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
1757         enable the instructions and not just the built-ins.
1758         * doc/invoke.texi (x86 Options): Likewise.
1759
1760 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
1761
1762         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
1763
1764         * doc/invoke.texi (Option Summary): Correct spelling
1765         of -mmacosx-version-min.
1766
1767 2005-10-04  Devang Patel  <dpatel@apple.com>
1768
1769         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
1770         real types.
1771
1772 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
1773
1774         * tree-vect-transform.c (vect_create_epilog_for_reduction):
1775         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
1776
1777 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
1778
1779         * config/s390/s390.md ("TDSI","DP"): New mode macros.
1780         ("TE","tg"): New mode attributes.
1781         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
1782         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
1783         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
1784         dword_mode and one for GPRmode.
1785
1786 2005-10-04  Ian Lance Taylor  <ian@airs.com>
1787
1788         PR preprocessor/13726
1789         * c-ppoutput.c (cb_include): Add comments parameter, and print out
1790         any comments passed in.
1791
1792 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1793
1794         * tree.c (annotate_with_file_line): Fix typo.
1795
1796 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1797
1798         PR ada/19382
1799         * builtins.c (fold_builtin_memcmp): When constructing the pointer
1800         type used to access data in the inlined length == 1 case, use
1801         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
1802         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
1803
1804 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
1805
1806         * config/i386/i386.h (TARGET_FISTTP): Enable also for
1807         TARGET_SSE3 and only for TARGET_80387.
1808         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
1809         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
1810         Do not depend on TARGET_80387.
1811
1812 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1813
1814         * tree.c (last_annotated_node): Change type to location_t*.
1815         (annotate_with_file_line): Reflect the change of
1816         last_annotated_node type.
1817
1818 2005-10-04  Richard Guenther  <rguenther@suse.de>
1819
1820         PR c/23576
1821         * c-decl.c (grokdeclarator): Don't write to fields
1822         of error_mark_node.
1823
1824 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1825
1826         PR middle-end/23125
1827         * c-decl.c (finish_decl): Use set_user_assembler_name even for
1828         register variables.
1829         * varasm.c (make_decl_rtl): If a register variable does not
1830         have a set user assmbler name, error out.
1831         Decode the asmspec is now name+1 bypassing '*'.
1832
1833 2005-10-04  Steven Bosscher  <stevenb@suse.de>
1834
1835         PR tree-optimization/23049
1836         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
1837         of a COND_EXPR is folded before calling fold on the whole rhs of a
1838         conditional assignment.
1839         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
1840         document that a COND_EXPR may appear there.
1841
1842 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
1843
1844         PR 23445
1845         * tree-vrp.c (extract_range_from_assert): If the new numeric
1846         range created out of the assertion contradicts the existing
1847         numeric range of the ASSERT_EXPR variable, make the new range
1848         varying.
1849
1850 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1851
1852         * config/sh/sh.c (sh_register_move_cost): Add case for moving
1853         from T_REGS to FP register class.
1854
1855 2005-10-03  Richard Henderson  <rth@redhat.com>
1856
1857         PR 24135
1858         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
1859         before creating a new one.
1860
1861 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
1862
1863         * config/rs6000/t-aix43 (LDFLAGS): New.
1864         * config/rs6000/t-aix52 (LDFLAGS): New.
1865
1866 2005-10-03  Ian Lance Taylor  <ian@airs.com>
1867
1868         * gimplify.c (find_single_pointer_decl_1): New static function.
1869         (find_single_pointer_decl): New static function.
1870         (internal_get_tmp_var): For a formal variable, set restrict base
1871         information if appropriate.
1872         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
1873         return it.
1874         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
1875         (DECL_GET_RESTRICT_BASE): Define.
1876         (SET_DECL_RESTRICT_BASE): Define.
1877         (decl_restrict_base_lookup): Declare.
1878         (decl_restrict_base_insert): Declare.
1879         (struct tree_decl_with_vis): Add based_on_restrict_p field.
1880         * tree.c (restrict_base_for_decl): New static variable.
1881         (init_ttree): Initialize restrict_base_for_decl.
1882         (copy_node_stat): Copy restrict base information.
1883         (decl_restrict_base_lookup): New function.
1884         (decl_restrict_base_insert): New function.
1885         (print_restrict_base_statistics): New static function.
1886         (dump_tree_statistics): Call print_restrict_base_statistics.
1887
1888 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
1889
1890         PR 24142
1891         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
1892         case of anti-ranges.
1893
1894 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
1895
1896         PR c/18851
1897         * c-typeck.c (tagged_tu_seen): Rename to ...
1898         (tagged_tu_seen_cache): this and add val field.
1899         (comptypes): Move functional to comptypes_internal
1900         and free tagged_tu_seen.
1901         (comptypes_internal): New function and call comptypes_internal
1902         instead of comptypes. Speed up by sibcalling
1903         tagged_types_tu_compatible_p.
1904         (alloc_tagged_tu_seen): New function
1905         (free_all_tagged_tu_seen_up_to): New function.
1906         (tagged_types_tu_compatible_p): Return the val of the seen two
1907         types.
1908         Add that the two types are the same to tagged_tu_seen_base
1909         if they are and call comptypes_internal instead of comptypes.
1910         <case UNION_TYPE>: Speed up common type where the fields are
1911         in the same order.
1912         (function_types_compatible_p): Call comptypes_internal instead of
1913         comptypes.
1914         (type_lists_compatible_p): Likewise.
1915         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
1916
1917 2005-10-02  Matthias Klose  <doko@debian.org>
1918
1919         * doc/invoke.texi: Fix typo and speling error.
1920
1921 2005-10-01  Richard Henderson  <rth@redhat.com>
1922
1923         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
1924
1925 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
1926
1927         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
1928         using --start-group and --end-group.
1929
1930 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
1931
1932         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
1933         FIXME note regarding quirky semantics.
1934
1935 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
1936
1937         PR 24141
1938         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
1939         non-null range as a last resort.
1940
1941 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
1942             Diego Novillo  <dnovillo@redhat.com>
1943
1944         PR 23604
1945         * tree-vrp.c (extract_range_from_assert): For !=
1946         assertions, only build an anti-range if LIMIT is a
1947         single-valued range.
1948
1949 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
1950
1951         * arm.md (movqi): On thumb when optimizing, handle loading from
1952         memory by describing this as taking a subreg of a zero-extended load
1953         into an SImode register.
1954         (movhi): Likewise.
1955
1956 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
1957
1958         * reload1.c (merge_assigned_reloads): Do not change any
1959         RELOAD_FOR_OUTPUT_ADDRESS reloads.
1960
1961 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
1962
1963         * Makefile.in (LIPO_FOR_TARGET): Define.
1964         (STRIP_FOR_TARGET): Define.
1965
1966         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
1967         before creating new ones.  Do symlinks before creating the actual
1968         targets.
1969
1970         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
1971         to work out which multilibs are actually being built.
1972
1973 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
1974
1975         * tree-vect-transform.c, config/ms1/ms1.md,
1976         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
1977         Follow spelling conventions.
1978         * doc/invoke.texi, doc/md.texi: Fix typos.
1979
1980 2005-09-30  Andrew Macleod  <amacleod@redat.com>
1981
1982         PR tree-optimization/21430
1983         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
1984         use operands, and set stmt pointer if need be.
1985         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
1986         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
1987         present.
1988
1989 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1990
1991         PR middle-end/24053
1992         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
1993
1994 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
1995
1996         * optabs.c (expand_binop): Initialize first_pass_p.
1997
1998 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
1999
2000         PR middle-end/24109
2001         * c-decl.c (c_write_global_declarations_1): If any
2002         wrapup_global_declaration_2 call returned true, restart the loop.
2003
2004 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
2005
2006         Fix PR tree-optimization/24117
2007         * tree-ssa-structalias.c (find_func_aliases): Strip nops
2008         before considering whether to use anyoffset.
2009
2010 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
2011
2012         Revert this patch:
2013
2014         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
2015
2016         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2017         to order operands.
2018         (swap_commutative_operands_with_target): New.
2019
2020 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
2021
2022         PR c/21419
2023         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
2024         read-only.
2025
2026 2005-09-29  Steven Bosscher  <stevenb@suse.de>
2027
2028         PR tree-optimization/23911
2029         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
2030         and IMAGPART_EXPR too.
2031
2032 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
2033
2034         PR 17886
2035         * expmed.c (expand_shift): Move logic to reverse rotation
2036         direction when  rotating by constants ...
2037         * optabs.c (expand_binop): ... here.
2038         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
2039         (ix86_rotrdi3): New pattern.
2040         (rotldi3): Handle 32-bit mode.
2041         (ix86_rotldi3): New pattern.
2042
2043 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
2044
2045         PR target/24102
2046         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
2047         check for numbers that need no bit twiddle.
2048
2049 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
2050
2051         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
2052         multilib to be built.
2053
2054         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
2055         (stage1-start): Delete old libgcc and libunwind before moving
2056         anything into the stage directory.
2057         (stage2-start): Likewise.
2058         (stage3-start): Likewise.
2059         (stage4-start): Likewise.
2060         (stageprofile-start): Likewise.
2061         (stagefeedback-start): Likewise.
2062         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
2063         header in tm_file and CPU-specific t-darwin in tmake_file.
2064         (i[34567]86-*-darwin*): Don't change tm_file.
2065         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
2066         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
2067         shared library stub for target OS version.
2068         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
2069         (SHLIB_LINK): Don't make SHLIB_SOLINK.
2070         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
2071         (libgcc_s.%.dylib): New.
2072         (LIBGCC): Define.
2073         (install-darwin-libgcc-stubs): New.
2074         (INSTALL_LIBGCC): New append.
2075         * config/i386/darwin-libgcc.10.4.ver: New.
2076         * config/i386/darwin-libgcc.10.5.ver: New.
2077         * config/i386/t-darwin: New.
2078         * config/rs6000/darwin-libgcc.10.4.ver: New.
2079         * config/rs6000/darwin-libgcc.10.5.ver: New.
2080         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
2081         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
2082
2083 2005-09-28  Paul Brook  <paul@codesourcery.com>
2084
2085         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
2086         denormals.
2087
2088 2005-09-28  Richard Guenther  <rguenther@suse.de>
2089
2090         PR tree-optimization/23853
2091         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
2092         host_integerp to verify misalignment value.
2093
2094 2005-09-28  Richard Henderson  <rth@redhat.com>
2095
2096         * builtins.c (get_builtin_sync_mode): New.
2097         (expand_builtin_sync_operation): Pass in mode argument.
2098         (expand_builtin_compare_and_swap): Likewise.
2099         (expand_builtin_lock_test_and_set): Likewise.
2100         (expand_builtin_lock_release): Likewise.
2101         (expand_builtin): Update to match.
2102
2103 2005-09-28  Nick Clifton  <nickc@redhat.com>
2104
2105         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
2106         formatting.  Add check to PLUS case to ensure that the offset is
2107         within an acceptable range.
2108
2109         * config/v850/v850.md (casesi): Disable the generation of the
2110         switch pattern as it is not being handled properly at the moment.
2111
2112         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
2113         for when the high words are identical.
2114
2115 2005-09-27  Richard Henderson  <rth@redhat.com>
2116
2117         * pretty-print.c (pp_base_format): Fix typo for %>.
2118
2119 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
2120             Devang Patel  <dpatel@apple.com>
2121
2122         PR tree-optimization/23625
2123         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
2124         LABEL_EXPR, assertion check.
2125
2126 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
2127
2128         * optabs.c (no_conflict_move_test): Check if a result of a
2129         to-be-moved insn would be clobbered by an originally
2130         preceding insn.
2131
2132 2005-09-27  Jeff Law  <law@redhat.com>
2133
2134         * passes.c (init_optimization_passes): Replace copy propagation
2135         passes immediately after DOM with phi-only copy propagation
2136         pases.  Add phi-only copy propagation pass after first DOM pass.
2137         * tree-pass.h (pass_phi_only_copy_prop): Declare.
2138         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
2139         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
2140         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
2141         to init_copy_prop.  Callers updated.
2142         (do_phi_only_copy_prop): New function.
2143         (pass_phi_only_copy_prop): New pass descriptor.
2144
2145 2005-09-27  Nick Clifton  <nickc@redhat.com>
2146
2147         * libgcc2.c (__popcount_tab): Remove redundant prototype.
2148
2149 2005-09-26  Jason Merrill  <jason@redhat.com>
2150
2151         PR c++/13764
2152         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
2153
2154         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
2155
2156 2005-09-26  James E Wilson  <wilson@specifix.com>
2157
2158         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
2159         copyright.  Add gcc copyright plus libgcc exception.
2160         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
2161         copyright.
2162         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
2163
2164 2005-09-26  Jeff Law  <law@redhat.com>
2165
2166         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
2167         about when to iterate.
2168
2169 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
2170
2171         PR target/23847
2172         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
2173         for __complex__ double in -mcpu=G5 mode.
2174
2175 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
2176
2177         PR tree-optimization/23942
2178         * Makefile.in (SCEV_H): Depends on PARAMS_H.
2179         * tree-scalar-evolution.c: Include params.h.
2180         (t_bool): New enum.
2181         (follow_ssa_edge, follow_ssa_edge_in_rhs,
2182         follow_ssa_edge_in_condition_phi_branch,
2183         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
2184         Change return type to t_bool.  Use a parameter to limit the size of
2185         trees that are walked before stopping
2186         (analyze_evolution_in_loop): Initialize the limit to 0.
2187         (follow_ssa_edge): Give up by returning t_dont_know if the limit
2188         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2189
2190 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
2191
2192         PR middle-end/23831
2193         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
2194         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
2195
2196 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
2197
2198         * combine.c (make_extraction): Check for valid use of subreg.
2199
2200 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
2201
2202         PR target/24055
2203         * config/i386/i386.md ("*fistdi2_1"): New pattern.
2204         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
2205         ("fist<mode>2_with_temp"): Use only register operands.
2206
2207 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
2208
2209         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
2210         CALL_INSN_FUNCTION_USAGE.
2211
2212 2005-09-26  Richard Guenther  <rguenther@suse.de>
2213
2214         PR middle-end/15855
2215         * gcse.c: Include hashtab.h, define ldst entry hashtable.
2216         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
2217         (ldst_entry): Use the hashtable instead of list-walking.
2218         (find_rtx_in_ldst): Likewise.
2219         (free_ldst_entry): Free the hashtable.
2220         (compute_ld_motion_mems): Create the hashtable.
2221         (trim_ld_motion_mems): Remove entry from hashtable if
2222         removing it from list.
2223         (compute_store_table): Likewise^2.
2224         (store_motion): Free hashtable in case we did not see
2225         any stores.
2226
2227 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
2228
2229         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
2230         and arg1 if we are passing them to fold_build2.
2231
2232 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
2233
2234         PR 23828
2235         * config/i386/i386.c (ix86_function_regparm): Fix the test for
2236         a nested function.
2237
2238 2005-09-25  Richard Henderson  <rth@redhat.com>
2239
2240         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
2241         SYMBOL_REF_TLS_MODEL to be correct.
2242
2243 2005-09-24  Richard Henderson  <rth@redhat.com>
2244
2245         * ipa-type-escape.c (discover_unique_type): Remove dead code at
2246         end of function.  Reindent.
2247
2248 2005-09-24  Ian Lance Taylor  <ian@airs.com>
2249
2250         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
2251         NEGATE_EXPR/BIT_NOT_EXPR case.
2252
2253 2005-09-24  Richard Henderson  <rth@redhat.com>
2254
2255         * c-common.c (handle_mode_attribute): When not modifying in place,
2256         create subtypes for enumerations.
2257         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
2258         * gimplify.c (create_tmp_from_val): Likewise.
2259
2260 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
2261
2262         * config/i386/i386.md (*tls_global_dynamic_64,
2263         *tls_local_dynamic_base_64): Add missing mode to call.
2264         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
2265
2266 2005-09-24  Jan Hubicka  <jh@suse.cz>
2267
2268         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
2269         (cgraph_clone_node): Likewise.
2270         * cgraph.h (cgraph_clone_edge): Update prototype.
2271         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
2272         duplicated prototypes; add updating argument.
2273         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
2274         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
2275         updating profile.
2276         (cgraph_mark_inline_edge): Likewise.
2277         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
2278         (cgraph_flatten_node): Likewise.
2279         (cgraph_decide_recursive_inlining): Likewise.
2280         (cgraph_decide_inlining_of_small_function): Likewise.
2281         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2282
2283 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
2284             Pete Steinmetz <steinmtz@us.ibm.com>
2285
2286         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
2287         (rldic.): Set type to "compare".
2288         (rldicr.): Same.
2289         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
2290         mfjmpr for MFCTR/MFLR.
2291         (movdf_hardfloat64): Same.
2292         (movdf_softfloat64): Same.  Correct order of store and move types.
2293         (movti_string): Set type to store_ux/load_ux.
2294         (load_multiple): Set type to load_ux.
2295         (store_multiple): Set type to store_ux.
2296         (movmemsi): Set type to store_ux.
2297         (output_cbranch direct_return): Set type to jmpreg.
2298         (stmw): Set type to store_ux.
2299         (lmw): Set type to load_ux.
2300         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
2301         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
2302         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
2303         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
2304         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
2305         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
2306         (rios1-fpstore): Increase latency to 3.
2307         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
2308         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
2309
2310 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
2311             Andrew Pinski  <pinskia@physics.uc.edu>
2312
2313         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
2314         operand2 constraint to "b".
2315         (sync_<fetchop_name>di_internal): Same.
2316         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
2317         to "b".
2318         (sync_old_<fetchop_name>di_internal): Same.
2319         (sync_new_<fetchop_name>si_internal): Same.
2320         (sync_new_<fetchop_name>di_internal): Same.
2321
2322 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
2323
2324         PR middle-end/23991
2325         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
2326         case, define as macros.
2327
2328         PR rtl-optimization/23837
2329         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
2330         clobber / clobber match between dest and p->first.
2331
2332         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
2333         (no_conflict_move_test): Update comments.
2334
2335 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
2336
2337         * doc/install.texi: Update URL for Jacks.
2338         * doc/sourcebuild.texi: Likewise.
2339
2340 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
2341
2342         PR target/24007
2343         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
2344         registers when choosing register preferences.
2345         (movdf_hardfloat64): Same.
2346
2347 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
2348
2349         * expmed.c (expand_shift): Don't use the target of the rotate as
2350         target for the first expanded shift insn.
2351         * testsuite/gcc.dg/20050922-1.c: Testcase added.
2352
2353 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
2354
2355         PR tree-optimization/22438
2356         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
2357         preserved iv rhs rewriting specially.
2358
2359 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
2360
2361         * tree-data-ref.c (analyze_array_indexes): Only estimate when
2362         estimate_only  is true.
2363         * tree-flow.h (ref_contains_indirect_ref): New prototype.
2364         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
2365         tree-ssa-structalias.c
2366         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
2367         ref_contains_indirect_ref.
2368         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
2369
2370 2005-09-21  DJ Delorie  <dj@redhat.com>
2371
2372         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
2373         MASK_PTR_A0D0.
2374         (mn10300_return_in_memory): Support variable size types also.
2375         (mn10300_pass_by_reference): Likewise.
2376         (mn10300_function_value): New.
2377         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
2378         (FUNCTION_OUTGOING_VALUE): Likewise.
2379         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
2380         * doc/invoke.texi: Document it.
2381
2382 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
2383
2384         PR target/22585
2385         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
2386         force integer op1 into register for XFmode compares.
2387
2388 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
2389
2390         PR middle-end/23971
2391         * expmed.c (alg_code): Add alg_impossible.
2392         (alg_hash_entry): Add cost.
2393         (synth_mult): Record alg_impossible in the hash table if
2394         multiplication by a given integer is impossble within the
2395         limit.  Speed up using alg_impossible.
2396
2397 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
2398
2399         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
2400         argument.  Allow and set any offset if needs_anyoffset is passed
2401         in.
2402         (get_constraint_for): Add argument here too.
2403         Pass it down.
2404         (do_structure_copy): Pass NULL to get_constraint_for.
2405         (handle_ptr_arith): Ditto.
2406         (find_func_aliases): Ditto.
2407
2408 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
2409
2410         PR rtl-optimization/23898
2411         * output.h (get_attr_min_length): Declare.
2412         * final.c (get_attr_length_1): New function, broken out of:
2413         (get_attr_length).
2414         (get_attr_min_length): New function.
2415         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
2416         (duplicate_computed_gotos): Likewise.
2417         * genattr.c (insn_min_length): Generate declaration.
2418         * genattrtab.c (min_fn, min_attr_value): New functions.
2419         (make_length_attrs): Generate insn_min_length.
2420
2421 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
2422
2423         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
2424
2425 2005-09-20  Richard Henderson  <rth@redhat.com>
2426
2427         PR tree-optimization/24059
2428         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
2429         EXPAND_STACK_PARM.
2430
2431 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
2432
2433         * c.opt (fextended-identifiers): New.
2434         * c-opts.c (c_common_handle_option): Handle
2435         -fextended-identifiers.
2436         * doc/cpp.texi: Update documentation of extended identifiers.
2437         * doc/cppopts.texi (-fextended-identifiers): Document.
2438
2439 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
2440
2441         PR tree-optimization/23929
2442         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
2443         if expr is NULL.
2444
2445         PR tree-optimization/23818
2446         * tree-stdarg.c (execute_optimize_stdarg): Call
2447         calculate_dominance_info.
2448
2449 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
2450
2451         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
2452         (analyze_siv_subscript_cst_affine): Add weak SIV test.
2453         (compute_overlap_steps_for_affine_1_2): Use
2454         get_number_of_iters_for_loop.
2455         (analyze_subscript_affine_affine): Check whether difference is
2456         zero first.
2457         Use get_number_of_iters_for_loop.
2458         Check whether overlap occurs outside of bounds.
2459         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
2460
2461 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
2462
2463         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
2464         base register if possible.
2465
2466 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
2467
2468         PR tree-optimization/18463
2469         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
2470         converting it directly is not possible.
2471         (chrec_convert_aggressive): New function.
2472         * tree-chrec.h (chrec_convert_aggressive): Declare.
2473         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
2474         Fold chrec conversions aggressively if asked to.
2475         (instantiate_parameters): Modified because of changes in
2476         instantiate_parameters_1.
2477
2478 2005-09-19  Richard Henderson  <rth@redhat.com>
2479
2480         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
2481         (reduc_splus_v2df): New.
2482
2483 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
2484
2485         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
2486         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
2487
2488 2005-09-19  Richard Henderson  <rth@redhat.com>
2489
2490         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
2491         vcondu<SSEMODE12>.
2492
2493 2005-09-19  Richard Henderson  <rth@redhat.com>
2494
2495         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
2496         (ia64_expand_dot_prod_v8qi): New.
2497         * config/ia64/ia64-protos.h: Update.
2498         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
2499         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
2500         sdot_prodv8qi, sdot_prodv4hi): New.
2501         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
2502
2503 2005-09-19  Richard Henderson  <rth@redhat.com>
2504
2505         PR 23941
2506         * real.c (exact_real_truncate): Return false if the format cannot
2507         represent the number as a normal.
2508
2509         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
2510         for a memory source.
2511
2512 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
2513
2514         * tree-ssa-operands.c (swap_tree_operands): Export.
2515         * tree.h (swap_tree_operands): Declare.
2516         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
2517         Call swap_tree_operands.
2518
2519 2005-09-19  Richard Henderson  <rth@redhat.com>
2520
2521         * tree-flow.h (merge_alias_info): Declare.
2522         * tree-ssa-copy.c (merge_alias_info): Export.
2523         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
2524         (vect_create_data_ref_ptr): Use create_iv directly.
2525         (vectorizable_load): Use correct types for integer constants.
2526         (vect_generate_tmps_on_preheader): Likewise.
2527         (vect_gen_niters_for_prolog_loop): Likewise.
2528
2529 2005-09-19  Steven Bosscher  <stevenb@suse.de>
2530
2531         PR rtl-optimization/23943
2532         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
2533
2534 2005-09-18  Jan Hubicka  <jh@suse.cz>
2535
2536         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
2537
2538 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2539
2540         * varasm.c (output_constant): Do not abort on conversions to union
2541         types between different sizes.
2542
2543 2005-09-18  Richard Guenther  <rguenther@suse.de>
2544
2545         PR middle-end/23944
2546         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
2547         fallback.
2548
2549 2005-09-18  Paul Brook  <paul@codesourcery.com>
2550
2551         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
2552
2553 2005-09-17  Richard Henderson  <rth@redhat.com>
2554
2555         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
2556         * tree-ssa-loop.c (pass_vect_dce): Remove.
2557         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
2558         of pass_vectorize.
2559
2560 2005-09-17  Richard Henderson  <rth@redhat.com>
2561
2562         * tree-pass.h (pass_vect_dce): Declare.
2563         * passes.c (init_optimization_passes): Add it.
2564         * tree-flow.h (tree_ssa_dce): Declare.
2565         * tree-ssa-dce.c (tree_ssa_dce): Export.
2566         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
2567         (gate_tree_vectorize): ... here.
2568         (pass_vect_dce): New.
2569
2570 2005-09-17  Jan Hubicka  <jh@suse.cz>
2571
2572         * except.c (struct eh_status): Turn region_array into vec.
2573         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
2574         convert_from_eh_region_ranges, find_exception_handler_labels,
2575         current_function_has_exception_handlers, assign_filter_values,
2576         build_post_landing_pads, dw2_build_landing_pads,
2577         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
2578         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
2579         foreach_reachable_handler, can_throw_internal_1,
2580         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
2581         region_array.
2582         (duplicate_eh_region_1): Update region_array.
2583         (duplicate_eh_regions): Resize region_array and avoid recomputing.
2584
2585 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
2586
2587         PR middle-end/22067
2588         * expmed.c (expand_mult): Substitute simple register for op0 when
2589         computing max_cost.
2590
2591 2005-09-17  Richard Henderson  <rth@redhat.com>
2592
2593         * expr.c (emit_move_via_integer): Add force argument, pass it on
2594         to emit_move_change_mode.  Update callers.
2595         (emit_move_complex): Pass true to new force argument.
2596         * function.c (expand_function_end): Move expand_eh_return call
2597         earlier.  Merge sub-word complex values into a pseudo before
2598         copying to the return hard register.
2599
2600 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2601
2602         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
2603         between different sizes.
2604
2605 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
2606
2607         PR 23903
2608
2609         * passes.c (init_optimization_passes): Register dump files for
2610         IPA passes first.
2611
2612 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2613
2614         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
2615         * config/s390/s390.c (s390_overlap_p): New function.
2616         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
2617         peephole2, "*xc" peephole2): Added overlap check to the peephole2
2618         condition.
2619
2620 2005-09-16  Richard Guenther  <rguenther@suse.de>
2621
2622         * ipa-pure-const.c (static_execute): Free auxiliar information.
2623         * ipa-type-escape.c (discover_unique_type): Free temporary key.
2624         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
2625
2626 2005-09-15  DJ Delorie  <dj@redhat.com>
2627
2628         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
2629
2630 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
2631
2632         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2633         to order operands.
2634         (swap_commutative_operands_with_target): New.
2635
2636 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
2637
2638         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
2639         parameter.
2640         Update callers.
2641         (estimate_iters_using_array): New function.
2642         * tree-data-ref.h (estimate_iters_using_array): Prototype
2643         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
2644         Use estimate_iters_using_array instead of analyze_array.
2645
2646 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2647
2648         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
2649         as addressable.
2650
2651 2005-09-15  Michael Matz  <matz@suse.de>
2652
2653         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
2654
2655 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
2656
2657         PR tree-optimization/23835
2658         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
2659         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
2660
2661 2005-09-14  Richard Henderson  <rth@redhat.com>
2662
2663         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
2664         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
2665
2666 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
2667
2668         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
2669         in the ARRAY_TYPE case.
2670
2671 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2672
2673         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
2674
2675 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
2676
2677         PR middle-end/22480
2678         * tree-vect-transform.c (vectorizable_operation): Return false for
2679         scalar shift operations and for vector shift operations with
2680         non-invariant shift arguments.  Use scalar tree operand op1 as
2681         a shift operand when vector shift insn pattern uses scalar shift
2682         operand.
2683         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
2684
2685 2005-09-14  Olivier Hainque  <hainque@adacore.com>
2686
2687         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
2688         value if it has side-effects.
2689
2690 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
2691
2692         PR target/22068
2693         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
2694
2695 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
2696
2697         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
2698         passed as NAME as if it were label at start of function code.
2699
2700 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2701
2702         * config/sh/sh.md (*movv4sf_i): Add general register cases to
2703         the constraints.
2704
2705 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
2706
2707         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
2708         as early clobber.  Rewrite so the PIC register is not implicitly used.
2709
2710 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2711
2712         * tree.c (annotate_with_file_line): Compare line numbers before
2713         file names.
2714
2715 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
2716
2717         PR target/23816
2718         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
2719         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
2720
2721 2005-09-13  Ian Lance Taylor  <ian@airs.com>
2722
2723         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
2724         than a HOST_WIDEST_INT to gen_doloop_begin.
2725
2726 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
2727
2728         * tree-dfa.c (dump_variable): Guard against NULL annotations.
2729
2730 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
2731
2732         PR tree-optimize/23817
2733         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
2734
2735 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
2736
2737         PR target/23774
2738         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
2739         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
2740         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
2741         (restore_stack_nonlocal): Likewise.
2742         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
2743
2744 2005-09-12  Ian Lance Taylor  <ian@airs.com>
2745
2746         PR g++/7874
2747         * c.opt (ffriend-injection): New C++ option.
2748         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
2749         (C++ Dialect Options): Document -ffriend-injection.
2750
2751 2005-09-12  Josh Conner  <jconner@apple.com>
2752
2753         PR middle-end/23237
2754         * ipa-reference.c (static_execute): Don't mark variables in
2755         named sections TREE_READONLY.
2756
2757 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
2758
2759         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
2760         stack_tie.
2761
2762 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
2763
2764         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
2765         V_MUST_DEF instead of just the first_use_p.
2766         Don't mark the virtual variables for renaming on the statement which
2767         is being removed.
2768         (pass_dse): Remove TODO_update_ssa.
2769
2770 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
2771
2772         PR middle-end/23290
2773         * stor-layout.c (compute_record_mode): For records with a single
2774         field, actually check the field's mode size against the type size.
2775
2776         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
2777         registers for TARGET_SHMEDIA.
2778         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
2779         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
2780         of GENERAL_REGS and FP_REGS.
2781
2782 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2783
2784         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
2785
2786 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
2787
2788         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
2789         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
2790         are omitted.  Exclude stack_tie insn too.
2791
2792 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
2793
2794         PR rtl-optimization/23098
2795         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
2796         0.0f is easy.
2797         * config/rs6000/rs6000.md (movdf splitter): Use
2798         const_double_operand predicate for TARGET_POWERPC64.
2799         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
2800         SYMBOL_REF method to ABI_V4.
2801
2802         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
2803         replace_equiv_address.
2804         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
2805         rs6000_sr_alias_set and MEM_NOTRAP.
2806         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
2807
2808 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
2809
2810         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
2811         handle CALL_EXPR again.
2812
2813 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
2814
2815         * arm/predicates.md (alignable_memory_operand): Delete.
2816
2817 2005-09-10  Richard Henderson  <rth@redhat.com>
2818
2819         PR debug/23806
2820         * dbxout.c (dbxout_expand_expr): New.
2821         (dbxout_symbol): Use it.
2822
2823 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
2824
2825         * arm.c (arm_gen_rotated_half_load): Delete.
2826         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
2827         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
2828         (thumb_set_return_address): Likewise.
2829         (thumb_load_double_from_address): Use adjust_address.
2830         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
2831         (extendhsisi2_mem, movhi_bytes): Use change_address.
2832         (movhi): Use widen_memory_access.
2833         (reload_out_df): Use replace_equiv_address.
2834         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
2835
2836 2005-09-09  Richard Henderson  <rth@redhat.com>
2837
2838         PR debug/20998
2839         * dbxout.c: Include expr.h.
2840         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
2841         (dbxout_symbol): Handle DECL_VALUE_EXPR.
2842         * Makefile.in (dbxout.o): Add EXPR_H.
2843
2844 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
2845
2846         PR tree-optimization/23509
2847         * tree-cfg.c (replace_uses_by): Use replace_exp.
2848         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
2849         pointers have name_mem_tag or type_mem_tag set.
2850
2851 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
2852
2853         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use
2854         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
2855         of wrongly accessing operands.
2856
2857 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
2858
2859         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
2860         * tree-chrec.c: Include tree-scalar-evolution.h.
2861         (chrec_convert): Instantiate the base and step before calling
2862         scev_probably_wraps_p that would fail on parametric evolutions.
2863         Collect all the fails into a single section failed_to_convert,
2864         print a diagnostic, and return chrec_dont_know instead of calling
2865         fold_convert.
2866         * tree-scalar-evolution.c (loop_closed_phi_def): New.
2867         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
2868         phi nodes.
2869         (scev_const_prop): Don't replace the definition of a loop closed ssa
2870         phi node by itself, or by another loop closed ssa phi node.
2871         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
2872         that base and step are defined.
2873
2874 2005-09-09  Richard Guenther  <rguenther@suse.de>
2875
2876         PR c++/23624
2877         * fold-const.c (fold_ternary): Check truth_value_p before
2878         calling invert_truthvalue.
2879
2880 2005-09-09  Nick Clifton  <nickc@redhat.com>
2881
2882         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
2883         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
2884         dimension of these arrays.
2885         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
2886         these arrays.
2887         * longlong.h: Only provide a prototype for the __clz_tab[] array
2888         if this header has not been included from libgcc2.h.
2889         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
2890         defining own types.
2891         Provide prototypes for exported functions.
2892         Use the __clz_tab[] and __popcount_tab[] arrays provided by
2893         libgcc2.c.
2894
2895 2005-09-08  Josh Conner  <jconner@apple.com>
2896
2897         PR c++/21135
2898         PR c++/23180
2899         * expr.c (expand_expr_addr_expr_1): Don't invoke
2900         expand_simple_binop for EXPAND_INITIALIZER.
2901
2902 2005-09-08  Richard Henderson  <rth@redhat.com>
2903
2904         PR debug/23190
2905         * toplev.c (wrapup_global_declaration_1): Split out ...
2906         (wrapup_global_declaration_2): ... from ...
2907         (wrapup_global_declarations): ... here.  Return bool.
2908         (check_global_declaration_1): Split out ...
2909         (check_global_declarations): from here.
2910         (emit_debug_global_declarations): New.
2911         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
2912         check_global_declaration_1, emit_debug_global_declarations): Declare.
2913         * c-decl.c (c_write_global_declarations_1): Don't create a vector
2914         of decls.  Call wrapup_global_declaration_1,
2915         wrapup_global_declaration_2, check_global_declaration_1 directly.
2916         (c_write_global_declarations_2): New.
2917         (ext_block): New.
2918         (c_write_global_declarations): Call c_write_global_declarations_2.
2919         * langhooks.c (write_global_declarations): Call
2920         emit_debug_global_declarations.
2921
2922         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
2923         remove decls that have DECL_RTL_SET_P.
2924         * passes.c (rest_of_decl_compilation): Invoke
2925         cgraph_varpool_finalize_decl for all but functions.
2926
2927 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2928
2929         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
2930         the result of a conversion if the new min and max cannot be compared.
2931
2932 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
2933
2934         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
2935         (override_options): Setting s390_sr_alias_set removed.
2936         (save_fpr, save_gprs): Set alias set to vararg or frame.
2937         (restore_fpr, restore_gprs, s390_emit_prologue): Replace
2938         s390_sr_alias_set with get_frame_alias_set ().
2939         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
2940         get_varargs_alias_set ().
2941
2942 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
2943
2944         PR objc/20574
2945         PR objc/19324
2946         * c-parser.c (c_parser_objc_method_definition): If the next
2947         token is not "{", error out and don't start the function.
2948
2949 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
2950
2951         * tree-vrp.c (extract_range_from_expr): Move the check for non
2952         nullness after the check for gimple invariant.
2953
2954 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2955
2956         * tree.c (host_integerp, tree_low_cst): Correct function comment.
2957
2958 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2959
2960         PR target/23747
2961         * config/m32r.md (movmemsi_internal): Canonicalize order of
2962         operands in PLUS component of template.
2963
2964 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2965
2966         * reload1.c (fixup_eh_region_note): Remove assertion.
2967         (fixup_abnormal_edges): Reverted removal of call to
2968         find_many_sub_basic_blocks made on 2005-08-31.
2969
2970 2005-09-07  Richard Henderson  <rth@redhat.com>
2971
2972         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
2973         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
2974         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
2975         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
2976         rearrange for better packing.
2977         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
2978         (lookup_cfa_1): Remove inline marker.
2979         (cfa_equal_p): Split out of ...
2980         (def_cfa_1): ... here.  Use INVALID_REGNUM.
2981         (build_cfa_loc): Handle !cfa->indirect.
2982         (frame_pointer_cfa_offset): New.
2983         (dbx_reg_number): Assert register elimination performed; do
2984         leaf register remapping.
2985         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
2986         (eliminate_reg_to_offset): New.
2987         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
2988         for verifiably local stack frame addresses; re-base to CFA.
2989         (mem_loc_descriptor): Remove can_use_fbreg argument.
2990         (concat_loc_descriptor, loc_descriptor): Likewise.
2991         (containing_function_has_frame_base): Remove.
2992         (rtl_for_decl_location): Don't do register elimination or
2993         leaf register remapping here.
2994         (secname_for_decl): Split out from ..
2995         (add_location_or_const_value_attribute): ... here.
2996         (convert_cfa_to_loc_list): New.
2997         (compute_frame_pointer_to_cfa_displacement): New.
2998         (gen_subprogram_die): Use them.
2999         * tree.h (frame_base_decl): Remove.
3000         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
3001         (prologue_stack_adjust): Remove.
3002         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
3003         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
3004         (set_frame_base_location): Remove.
3005         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
3006         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
3007         (vt_add_function_parameters): Don't eliminate_regs.
3008         (vt_initialize): Don't create frame_base_decl.
3009
3010 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3011
3012         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
3013         version of GNU binutils for 4.x and later.
3014
3015 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
3016
3017         * ggc-page.c (ggc_push_context): Remove.
3018         (ggc_pop_context): Likewise.
3019         * ggc.h (ggc_push_context): Remove.
3020         (ggc_pop_context): Likewise.
3021
3022 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
3023
3024         PR target/8973
3025         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
3026         returning from an interrupt handler.
3027
3028 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
3029
3030         PR target/8972
3031         * config/arc/arc.c (output_shift): Add check for loop count when
3032         optimizing.
3033
3034 2005-09-06  Steven Bosscher  <stevenb@suse.de>
3035
3036         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
3037         form manually.
3038         (abs_replacement): Likewise.
3039         (pass_phiopt): Remove TODO_update_ssa.
3040
3041 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
3042
3043         PR c/23075
3044         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
3045         if "return with no value, in function returning non-void" warning
3046         has been issued.
3047         * tree-cfg.c (execute_warn_function_return): Don't look at
3048         RETURN_EXPRs with TREE_NO_WARNING set.
3049
3050         PR target/22362
3051         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
3052         for internal functions doesn't use registers used by global registers
3053         variables.  Use fewer register parameters if there are global register
3054         variables.
3055
3056 2005-09-06  Olivier Hainque  <hainque@adacore.com>
3057             Eric Botcazou  <ebotcazou@adacore.com>
3058
3059         PR middle-end/14997
3060         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
3061         when we would be extracting outside its bit span (bitpos+bitsize
3062         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
3063         Ada unchecked conversions.
3064
3065 2005-09-06  Steven Bosscher  <stevenb@suse.de>
3066
3067         * tree-ssa-pre.c (try_look_through_load): New function.
3068         (compute_avail): Use it to try to look through loads for some
3069         more useful expressions.
3070
3071 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
3072
3073         * simplify-rtx.c (simplify_binary_operation_1): Correct the
3074         condition for detecting cases like (a&a) and (a^a).
3075
3076 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
3077
3078         * common.opt: Add option ftree-vect-loop-version.
3079         * params.def: Add --param vect-max-version-checks.
3080         * doc/invoke.texi: Document ftree-vect-loop-version and
3081         --param vect-max-version-checks.
3082         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
3083         may_misalign_stmts and defines for accessors.
3084         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
3085         LOOP_VINFO_MAY_MISALIGN_STMTS.
3086         (destroy_loop_vec_info): VEC_free for
3087         LOOP_VINFO_MAY_MISALIGN_STMTS.
3088         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3089         Update documentation.
3090         (vect_update_misalignment_for_peel): New.
3091         (vect_enhance_data_refs_alignment): Update to choose loop
3092         peeling or loop versioning if appropriate for the (potentially)
3093         unaligned data references in the loop.
3094         (vect_analyze_data_refs_alignment): Remove call to
3095         vect_enhance_data_refs_alignment so the checks can be done
3096         earlier.
3097         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
3098         and move up call to vect_analyze_data_refs_alignment.
3099         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
3100         (vect_transform_loop): Add call to loop_version.
3101
3102 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
3103
3104         PR rtl-optimization/23098
3105         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
3106         * simplify-rtx.c (constant_pool_reference_p): New function.
3107         * rtl.h (constant_pool_reference_p): New prototype.
3108         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
3109         constant_pool_reference_p in condition and
3110         avoid_constant_pool_reference in preparation statements.
3111
3112 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3113
3114         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
3115         STRICT_LOW_PART SETs.
3116
3117 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
3118
3119         PR middle-end/21460
3120         * except.c (sjlj_emit_function_enter): Find the function begin
3121         note even when it's not in first basic block.
3122
3123 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
3124
3125         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
3126         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
3127         * aclocal.m4: Regenerate.
3128
3129 2005-09-05  DJ Delorie  <dj@redhat.com>
3130
3131         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
3132         of macro.
3133
3134 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
3135
3136         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
3137         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
3138         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
3139         Follow spelling conventions.
3140         * doc/invoke.texi: Follow spelling conventions.
3141
3142 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
3143
3144         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
3145         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
3146         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
3147
3148 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
3149
3150         PR target/23683
3151         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
3152         (output_stack_adjust): Use gen_tmp_stack_mem.
3153         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
3154         (sh_set_return_address, sh_allocate_initial_value): Likewise.
3155         (sh_get_pr_initial_val): Likewise.
3156         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
3157         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
3158         * sh.md (divsi_inv_m0): Use gen_const_mem.
3159         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
3160         (movdf_i4+1): Use gen_tmp_stack_mem.
3161         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
3162         (fpu_switch+2): Likewise.
3163         (movv4sf_i, movv16sf_i): Use adjust_address.
3164         (symGOT_load): Set MEM_NOTRAP_P bit.
3165
3166 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3167
3168         PR target/23721
3169         * pa.c (emit_move_sequence): Fix typo in last change.
3170
3171 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
3172
3173         PR rtl-optimization/23454
3174         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
3175         is true.
3176
3177 2005-09-03  Richard Henderson  <rth@redhat.com>
3178             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3179
3180         PR middle-end/23671
3181         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
3182         gen_rtx_MEM.
3183
3184 2005-09-02  Nicolas Pitre <nico@cam.org>
3185
3186         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
3187         to bit_count to 32 bits.
3188
3189 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
3190
3191         PR c++/23167
3192         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
3193         generating synthetic loads from volatile lvalues.
3194
3195 005-09-02  Nick Clifton  <nickc@redhat.com>
3196
3197         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
3198         __ctzhi2, __clzhi2): New functions.
3199
3200 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
3201
3202         PR middle-end/23547
3203         * tree-nested.c (struct var_map_elt): Mark with GTY.
3204         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
3205         var_map_elt.
3206         (lookup_field_for_decl): Allocate new element in GC memory.
3207         (lookup_tramp_for_decl): Likewise.
3208         (convert_nl_goto_reference): Likewise
3209         (create_nesting_tree): Allocate info in GC memory. Likewise for
3210         info->var_map.
3211         (free_nesting_tree): Free with ggc_free instead of free.
3212         (root): New static variable.
3213         (lower_nested_functions): Remove root as local variable.  And zero out
3214         root at the end of the function.
3215
3216 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
3217
3218         PR rtl-optimization/20365
3219         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
3220         to short.  New member ix.
3221         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
3222         (simplify_plus_minus): Initialize ix members before calling qsort.
3223
3224 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
3225
3226         PR tree-optimization/23626
3227         * tree-cfg.c (replace_uses_by): Clean up eh info.
3228
3229 2005-09-01  DJ Delorie  <dj@redhat.com>
3230
3231         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
3232         fprintf.
3233
3234 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
3235
3236         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
3237         (rs6000_split_multireg_move): Use replace_equiv_address instead of
3238         gen_rtx_MEM.
3239
3240 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3241
3242         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
3243         do not issue warning for a variable definition following
3244         a declaration.
3245
3246 2005-09-01  Richard Henderson  <rth@redhat.com>
3247
3248         PR 23668
3249         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
3250         conversion to CONST_VECTOR.
3251
3252 2005-09-01  Richard Henderson  <rth@redhat.com>
3253
3254         PR 23676
3255         * reload1.c (reload_as_needed): Check !CALL_P before calling
3256         fixup_eh_region_note.
3257         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
3258
3259 2005-09-01  DJ Delorie  <dj@redhat.com>
3260
3261         * varasm.c (output_constant): Let the target resolve
3262         conversions of addresses to non-default pointer sizes.
3263
3264 2005-09-01  Nicolas Pitre <nico@cam.org>
3265
3266         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
3267         to alow matching ARM pre-indexed addressing mode.
3268         (arm_override_options): Remove now irrelevant comment.
3269
3270 2005-09-01  Phil Edwards  <phil@codesourcery.com>
3271
3272         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
3273         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
3274         * config/i386/vxworks.h:  Likewise.
3275         * config/i386/t-vxworksae:  New file, for VxWorks AE.
3276         * config/i386/vxworksae.h:  Likewise.
3277
3278 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
3279
3280         PR tree-optimization/23410
3281         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
3282         sequence is not wrapping during the first step.
3283
3284 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
3285
3286         PR debug/7241
3287         * dwarf2out.c (base_type_die): Compare char_type_node with
3288         TYPE_MAIN_VARIANT (type), not type.
3289
3290 2005-09-01  Richard Guenther  <rguenther@suse.de>
3291
3292         PR tree-optimization/15366
3293         * common.opt: Add -finline-functions-called-once.
3294         Put -fearly-inlining in alphabetically ordered place.
3295         * doc/invoke.texi: Document new option.
3296         * ipa-inline.c (cgraph_decide_inlining): Honour
3297         flag_inline_functions_called_once.
3298
3299 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
3300
3301         PR rtl-optimization/23478
3302         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
3303         (alloc_qty): Initialize it.
3304         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
3305         (combine_regs): Combine also n_throwing_calls_crossed fields.
3306         (find_free_reg): Don't attempt to caller-save pseudos crossing
3307         calls that might throw.
3308         * global.c (struct allocno): Add throwing_calls_crossed field.
3309         (global_alloc): Revert 2005-08-22 change.  Initialize
3310         throwing_calls_crossed.
3311         (find_reg): Don't attempt to caller-save pseudos crossing calls that
3312         might throw.
3313
3314 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
3315
3316         PR target/23649
3317         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
3318         (mask64_operand): Reinstate code prior to 2005-06-11 change.
3319         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
3320         (and64_2_operand): Tweak to use predicate.
3321         (and_operand): Adjust for mask_operand changes.
3322         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
3323         (print_operand): Likewise.
3324         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
3325         (mask64_1or2_operand): Delete.
3326         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
3327         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
3328         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
3329         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
3330         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
3331         (rotldi3_internal4): Likewise.
3332         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
3333         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
3334         (ashldi3_internal7): Likewise.
3335         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
3336         (ashldi3_internal, ashldi3_internal9 split): Likewise.
3337         (anddi3 split): Don't match mask64_operand.
3338         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
3339         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
3340         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
3341         't' splitter predicate.
3342         (movdi_internal64 + 2): Revert 2005-06-11 change.
3343
3344 2005-08-31  DJ Delorie  <dj@redhat.com>
3345
3346         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
3347         (m32c_asm_integer): Add support for 32 bit pointers.
3348
3349 2005-08-31  Richard Henderson  <rth@redhat.com>
3350
3351         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
3352         component-like references for setting MEM_NOTRAP_P.
3353
3354         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
3355         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
3356
3357 2005-08-31  Richard Henderson  <rth@redhat.com>
3358
3359         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
3360         into a pseudo before applying gen_lowpart.
3361
3362 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
3363
3364         * doc/install.texi (Specific): Update cctools version required
3365         for full functionality.
3366         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
3367         linkers as -macosx_version_min.
3368
3369 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
3370
3371         PR target/21255
3372         * sh.c (print_operand, %R and %S): Add handling of floating point
3373         registers, memory, constants and invalid operands.
3374
3375 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
3376
3377         * ipa-pure-const.c: Change dump name.
3378
3379 2005-08-31 Uros Bizjak <uros@kss-loka.si>
3380
3381         PR target/23570
3382         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
3383         to "reg_or_0_operand".
3384         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
3385
3386 2005-08-31  Dale Johannesen  <dalej@apple.com>
3387
3388         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
3389         loops that count down.
3390
3391 2005-08-31  Richard Henderson  <rth@redhat.com>
3392
3393         PR rtl-opt/23601
3394         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
3395         (fixup_eh_region_note): New.
3396         (reload_as_needed): Call it.
3397         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
3398         don't call find_many_sub_basic_blocks; call verify_flow_info.
3399         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
3400         (keep_stack_depressed): Likewise.
3401         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
3402
3403 2005-08-31  Richard Henderson  <rth@redhat.com>
3404
3405         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
3406         fp return matching.
3407
3408 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
3409
3410         * expr.c (expand_expr_real_1): Compare size of address
3411         mode to target's address mode size in deciding expansion of
3412         the constant address.
3413
3414 2005-08-31  Richard Guenther  <rguenther@suse.de>
3415
3416         PR middle-end/23477
3417         * expr.c (all_zeros_p): New function.
3418         (expand_expr_real_1): Handle the case of an all-zero
3419         non-addressable constructor separately.
3420
3421 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
3422
3423         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
3424         arguments, adjust all callers.
3425         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
3426
3427 2005-08-30  Richard Henderson  <rth@redhat.com>
3428
3429         PR target/23630
3430         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
3431         whenever the mode sizes match.
3432
3433 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
3434
3435         * calls.c (load_register_parameters): Fix comment typo.
3436         * expr.c (emit_push_insn): Comment formatting.
3437
3438 2005-08-30  Ian Lance Taylor  <ian@airs.com>
3439
3440         * config/i386/x-cygwin (host-cygwin): Change dependency from
3441         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
3442
3443 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
3444
3445         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
3446         parts of 'vals'.
3447
3448 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
3449
3450         PR middle-end/23408
3451         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
3452         call to ggc_collect.
3453
3454 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
3455
3456         PR bootstrap/21268
3457         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
3458         beginning.  Remove $(INCLUDES) from all the rules, if following
3459         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
3460
3461 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
3462
3463         PR middle-end/23484
3464         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
3465         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
3466         not constant, but maxlen is, don't set len to maxlen, rather
3467         set maxlen to len if len is a constant.
3468
3469 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
3470
3471         PR tree-optimization/23475
3472         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
3473         and counts.
3474
3475 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
3476
3477         Fix PR middle-end/22455
3478
3479         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
3480         Checksum only the parts of the tree that exist for the tree code.
3481
3482 2005-08-28  Dale Johannesen  <dalej@apple.com>
3483
3484         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
3485
3486 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
3487
3488         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
3489
3490 2005-08-28  Richard Henderson  <rth@redhat.com>
3491
3492         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
3493         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
3494         of char_type_node.
3495
3496 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
3497
3498         PR ada/23593
3499         * builtins.c (get_memory_rtx): Don't strip nops
3500         in between COMPONENT_REFs.
3501
3502 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
3503
3504         PR middle-end/23463
3505         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
3506         types.
3507         (gimplify_modify_expr): Check for zero sized types and gimplify the
3508         rhs and lhs as statements.
3509
3510 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
3511
3512         PR libgcj/23508
3513         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
3514         state for return address column of signal frames.
3515
3516 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
3517
3518         PR target/23539
3519         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
3520         bytes >= 2 not bytes == 2.
3521         (expand_block_move): Same.
3522
3523 2005-08-27  Richard Guenther  <rguenther@suse.de>
3524
3525         PR target/23575
3526         * config/i386/sse.md (sse2_movsd): Add missing closing
3527         braces.
3528
3529 2005-08-27  Paul Brook  <paul@codesourcery.com>
3530
3531         * genrecog.c (enum decision_type): Add DT_num_insns.
3532         (struct decision_test): Add u.num_insns.
3533         (add_to_sequence): Add DT_num_insns test.
3534         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
3535         (write_cond, debug_decision_2): Ditto.
3536         (change_state): Assume peep2_next_insn never fails.
3537         Remove "afterward" argument.
3538         (write afterward, write_tree): Update to match.
3539         * recog.c (peep2_current_count): New variable.
3540         (peep2_next_insn): Check it.
3541         (peephole2_optimize): Set peep2_current_count.
3542         * recog.h (peep2_current_count): Declare.
3543
3544 2005-08-26  Josh Conner  <jconner@apple.com>
3545
3546         PR middle-end/23584
3547         * ipa-pure-const.c (check_tree): Check for volatile-ness
3548         when considering a dereference.
3549
3550 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
3551
3552         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
3553
3554 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
3555
3556         PR rtl-optimization/23561
3557         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
3558         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
3559         at most LEN bytes long memory fits into the field.
3560         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
3561         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
3562         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
3563
3564 2005-08-26  Richard Henderson  <rth@redhat.com>
3565
3566         PR rtl-opt/23560
3567         * loop.c (biased_biv_may_wrap_p): New.
3568         (maybe_eliminate_biv_1): Use it to suppress non-equality
3569         comparison transformations.  Delete disabled code.
3570
3571 2005-08-26  Ian Lance Taylor  <ian@airs.com>
3572
3573         * combine.c (make_extraction): Avoid reference outside object.
3574
3575 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
3576
3577         * stor-layout.c (finalize_type_size): Restore behaviour for
3578         non-aggregate types to the status quo ante of the patch for
3579         pr 23467.  Document why it matters.
3580
3581 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
3582
3583         PR c/23506
3584         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
3585         array by one element, initialize the BT_LAST element with NULL.
3586
3587 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
3588
3589         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
3590         optimizing for size.
3591         (plus_eqsi): Same.
3592         (compare_plus_eqsi): Same.
3593         (plus_eqsi_compare): Same.
3594         (neg_eq0<mode>): Same.
3595         (neg_eq<mode>): Same.
3596
3597         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
3598         PROCESSOR_POWER4.
3599
3600 2005-08-26  Nick Clifton  <nickc@redhat.com>
3601
3602         * config/v850/v850.c (ep_memory_operand): Return FALSE if
3603         TARGET_EP is not defined.
3604         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
3605         TARGET_EP is enabled.
3606         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
3607         * config/v850/v850.md (save_all_interrupt): Only use the EP
3608         register if TARGET_EP is defined.
3609         (restore_all_interrupt): Likewise.
3610         * config/v850/lib1funcs.asm: Update functions so that the EP
3611         register is only used if __EP__ is defined.
3612
3613 2005-08-26  David Ung  <davidu@mips.com>
3614
3615         * config/mips/mips.c (mips_expand_prologue): Handle case when
3616         generating for MIPS16 and the outgoing argument area is more than
3617         SMALL_OPERAND. Use the frame pointer as temporary to generate the
3618         add instruction.
3619
3620 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
3621
3622         * config/crx/crx.md: Make doloop_end pattern usage controllable
3623         via mloop-nesting=<max-nesting> command line switch. Make sure
3624         the combiner cannot use doloop_end_<mode> in an illegal way.
3625         * config/crx/crx.c: Use regs up to r6 for argument passing.
3626         Refine crx_address_cost (non cst4 displacements are expensive).
3627         * config/crx/crx.opt: Add switch for mloop-nesting=.
3628
3629 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
3630
3631         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
3632         (UNSPEC_MVST): New constant.
3633
3634 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
3635
3636         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
3637         Reject operands containing eliminable registers.
3638         * testsuite/gcc.dg/20050825-1.c: New testcase.
3639
3640 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3641             Jan Hubicka  <jh@suse.cz>
3642
3643         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
3644
3645 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3646
3647         PR tree-optimization/23546
3648         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
3649         and REAL_CST nodes.
3650
3651 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
3652
3653         * params.def (PARAM_MIN_SPEC_PROB): New.
3654         * sched-rgn.c (MIN_PROBABILITY): Delete.
3655         (compute_trg_info): Convert to PARAM_VALUE.
3656         * doc/invoke.texi (param): Document min-spec-prob.
3657
3658 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
3659
3660         * config/darwin.h: define __PIC__
3661         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
3662         TARGET_OS_CPP_BUILTINS macro.
3663
3664 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3665
3666         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
3667         yesterday.
3668
3669 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
3670
3671         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
3672         to duplicate_block.
3673         * cfghooks.c (duplicate_block): Added position where to place
3674         new block as argument.
3675         * cfghooks.h (duplicate_block): Declaration changed.
3676         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
3677         duplicate_block.
3678         * cfglayout.h (copy_bbs): Declaration changed.
3679         * cfgloop.h (loop_version): Declaration changed.
3680         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
3681         position to copy_bbs.
3682         (loop_version): Pass position to duplicate_loop_to_header_edge.
3683         Add place_after argument and position new blocks according to
3684         it.
3685         * modulo-sched.c (sms_schedule): Pass place_after argument
3686         to loop_version.
3687         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
3688         * tree-cfg.c (split_edge_bb_loc): New function.
3689         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
3690         to determine position of new blocks.
3691         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
3692         to loop_version.
3693         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
3694         argument to duplicate_block.
3695         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
3696         Pass position to copy_bbs.
3697
3698 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
3699
3700         * fold-const.c (ptr_difference_const): Use
3701         cst_and_fits_in_hwi instead of host_integerp.
3702
3703 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
3704
3705         * config/darwin.c (gen_pic_offset): New.
3706         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
3707         Use it.
3708
3709 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
3710
3711         PR tree-optimization/23486
3712         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
3713
3714 2005-08-23  Phil Edwards  <phil@codesourcery.com>
3715
3716         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
3717         remove use_collect2.
3718         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
3719
3720         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
3721         configuration files to override the default value.
3722
3723         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
3724         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
3725         * config/vx-common.h:  New file, split out from...
3726         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
3727         * config/vxworksae.h:  New file, for VxWorks AE.
3728         * config/vxworks.opt:  New file.
3729         * config/vxlib.c:  Update for VxWorks 6.
3730
3731         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
3732         other MULTILIB_* variables appropriately.
3733         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
3734         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
3735         * config/rs6000/vxworks.h:  Update for VxWorks 6.
3736         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
3737
3738 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
3739
3740         PR target/20799
3741         * config/darwin.c (machopic_select_section): Remove the hack to
3742         mark "::operator new" and "::operator delete" for coalescing
3743         even though they are not weak.
3744
3745 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
3746
3747         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
3748         * configure: Regenerate.
3749
3750 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
3751
3752         PR middle-end/23517
3753         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
3754         between vectors.
3755         * convert.c (convert_to_integer, convert_to_vector): Likewise.
3756         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
3757         Likewise.
3758
3759 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
3760
3761         * config/rs6000/predicates.md (equality_operator): New.
3762         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
3763         comparison with a large constant.
3764
3765 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
3766
3767         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
3768
3769 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
3770
3771         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
3772         registers is even, and we have a hardware double precision fp,
3773         align the buffer.
3774         (sh_gimplify_va_arg_expr): For floating point arguments, consider
3775         size of current argument when checking if argument was passed in
3776         registers.
3777
3778         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
3779
3780         PR middle-end/23467
3781         * stor-layout.c (finalize_type_size): Dont override
3782         existing alignment with a smaller alignment from the mode.
3783
3784 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
3785
3786         * lambda-code.c (lambda_vector_lexico_pos): Moved...
3787         * lambda.h (lambda_vector_lexico_pos): ... here.
3788         * tree-data-ref.c (build_classic_dist_vector): Return false when
3789         the distance vector is lexicographically negative.
3790
3791 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
3792
3793         PR tree-optimization/23511
3794         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
3795         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
3796
3797 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
3798
3799         PR tree-optimization/22043
3800         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
3801         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
3802         If ALLOW_FLEXARR, handle types ending with flexible array member.
3803         Pass false as second argument to recursive count_type_elements calls.
3804         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
3805         argument to count_type_elements call.
3806         * tree-sra.c (decide_block_copy): Likewise.
3807         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
3808         for a constant-sized object, set cleared as well.  Pass true as
3809         second argument to count_type_elements call.
3810
3811 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
3812
3813         PR target/21571
3814         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
3815         from legitimate_small_data_p, and make global.  Update use.
3816         Remove forward declaration.
3817         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
3818         Declare.
3819         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
3820
3821 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
3822
3823         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
3824         of scratch intermediates.
3825         (eq<mode>_compare): Same.
3826         (neg_eq0<mode>): New.
3827         (neg_eq<mode>): Convert to define_insn_and_split.
3828
3829 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
3830
3831         PR target/23070
3832         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
3833         stdarg functions, set/clear the fp marker even when no variable
3834         args are passed.
3835         * config/rs6000/sysv4.opt (mprototype): Describe.
3836
3837 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
3838
3839         PR rtl-optimization/23478
3840         * regs.h (reg_info): Add throw_calls_crossed.
3841         (REG_N_THROWING_CALLS_CROSSED): Define.
3842         * flow.c (allocate_reg_life_data): Initialize
3843         REG_N_THROWING_CALLS_CROSSED.
3844         (propagate_one_insn, attempt_auto_inc): Update
3845         REG_N_THROWING_CALLS_CROSSED.
3846         * global.c (global_alloc): Don't allocate pseudos across
3847         calls that may throw.
3848
3849 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
3850
3851         PR c/18715
3852         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
3853         value is inbetween the range if we did not find an exact match.
3854
3855 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
3856
3857         * doc/invoke.texi (Option Summary): Add ms1 options.
3858         * doc/extend.texi: Document interrupt handler attribute for ms1.
3859         * doc/md.texi: Document ms1 constraints.
3860         * config.gcc: Add ms1-*-elf.
3861         * config/ms1/ms1.h: New.
3862         * config/ms1/ms1.c: New.
3863         * config/ms1/ms1.md: New.
3864         * config/ms1/ms1-protos.h: New.
3865         * config/ms1/ABI.txt: New.
3866         * config/ms1/crti.asm: New.
3867         * config/ms1/crtn.asm: New.
3868         * config/ms1/lib2extra-funcs.c: New.
3869         * config/ms1/t-ms1: New.
3870         * config/ms1/ms1.opt: New.
3871
3872 2005-08-22 Ira Rosen <irar@il.ibm.com>
3873
3874         * config/rs6000/altivec.md (xorv4sf3): New.
3875         (negv4sf2, neg<mode>2): Likewise.
3876
3877 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
3878
3879         PR target/23485
3880         * config/ia64/ia64.md (divsi3): Check divide by zero.
3881         (udivsi3): Likewise.
3882         (divdi3): Likewise.
3883         (udivdi3): Likewise.
3884
3885 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
3886
3887         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
3888         up to elem_bitsize bits, not max_bitsize.
3889
3890 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
3891
3892         PR tree-optimization/23433
3893         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
3894         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
3895
3896 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
3897
3898         PR tree-optimization/23434
3899         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
3900         the iteration bound is not an INTEGER_CST.
3901
3902 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
3903
3904         * tree-vect-transform.c (get_initial_def_for_reduction): Set
3905         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
3906         NULL if need_epilog_adjust is false.
3907         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
3908         Case 3 always peels first itration, not just for PLUS case, and no need
3909         to use scalar_initial_def here. Create an epilog adjustment only if
3910         scalar_initial_def is not NULL.
3911
3912         (vectorizable_reduction): Remove assert.
3913
3914 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3915
3916         PR target/23485
3917         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
3918         (__moddi3): Likewise.
3919         (__udivdi3): Likewise.
3920         (__umoddi3): Likewise.
3921         (__divsi3): Likewise.
3922         (__modsi3): Likewise.
3923         (__udivsi3): Likewise.
3924         (__umodsi3): Likewise.
3925
3926 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
3927
3928         * tree-pass.h (TDF_GRAPH): Define.
3929         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
3930         * passes.c (finish_optimization_passes): Only call
3931         finish_graph_dump_file if TDF_GRAPH is set.
3932         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
3933         NULL.  Set TDF_GRAPH bit.
3934         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
3935
3936 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
3937
3938         * arm.h (arm_stack_offsets): Add locals_base field.
3939         * arm.c (arm_get_frame_offsets): Compute it.
3940         (thumb_compute_initial_elimination offset): Make the Thumb frame
3941         pointer point to the base of the local variables.
3942         (thumb_expand_prologue): Update accordingly.
3943         (thumb_expand_epilogue): Likewise.
3944
3945         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
3946         mode of clobbered scratch to DImode.  Handle a case that's known to
3947         need this.
3948
3949 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
3950
3951         * config/rs6000/rs6000.md (gt0<mode>): Delete.
3952         (gt0<mode>_compare): Delete.
3953         (neg_gt0<mode>): Delete.
3954
3955 2005-08-19  Eric Christopher  <echristo@apple.com>
3956
3957         * optabs.h: Change CTI_ to COI_.
3958         * optabs.c: Ditto.
3959
3960 2005-08-19  James E Wilson  <wilson@specifix.com>
3961
3962         * builtins.c (expand_builtin_return_addr): Set
3963         current_function_accesses_prior_frames when count != 0.  Use
3964         frame_pointer_rtx when count == 0.
3965         * function.h (struct function): Add accesses_prior_frames field.
3966         (current_function_accesses_prior_frames): Define.
3967         * reload1.c (init_elim_table): Check
3968         current_function_accesses_prior_frames.
3969         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
3970
3971 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
3972
3973         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
3974         indicator.  Return true if the flowgraph changed during
3975         cleanup.
3976
3977 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
3978
3979         PR 23476
3980         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
3981         conditional expression before testing its value.
3982
3983 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
3984
3985         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
3986
3987 2005-08-19  Devang Patel  <dpatel@apple.com>
3988
3989         PR tree-optimization/23048
3990         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
3991         third parameter. Check whether latch is dominated by exit
3992         block or not.
3993         (if_convertible_loop_p): Supply exit block itself to
3994         if_convertible_bb_p.
3995
3996 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
3997
3998         PR target/23473
3999         * arm.md (arm_load_pic_register): Change argument to the mask of
4000         saved registers.  Call thumb_find_work_register if we need a
4001         scratch register on Thumb.
4002         (arm_expand_prologue): Pass empty register set to
4003         arm_load_pic_register.
4004         (thumb_expand_prologue): Pass live_regs_mask directly to
4005         arm_load_pic_register.
4006         * arm-protos.h (arm_load_pic_register): Update prototype.
4007
4008 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
4009
4010         * sh.c (find_sole_member): New function.
4011         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
4012         if the record's alignment is larger than the size of its only member.
4013
4014 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
4015
4016         PR target/23436
4017         * arm.c (thumb_legitimize_reload_address): New function.
4018         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
4019         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
4020
4021 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
4022
4023         * config/crx/crx.c: Implement crx_decompose_address. Reject
4024         symbolic displacements since CRX register relative adressing
4025         mode can't handle unsigned 32-bit values as displacements.
4026         * config/crx/crx.h: Simplify definitions, remove redundant
4027         parenthesis and obsolete macros.
4028         * config/crx/crx.opt: Add new switch for debugging addresses.
4029         * config/crx/crx-protos.h: Add new declarations for above.
4030
4031 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
4032
4033         PR middle-end/20624
4034         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
4035         looking past it.
4036
4037 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4038
4039         * collect2.c (dup2): Delete.
4040         * configure.ac: Don't check for dup2.
4041
4042         * config.in, configure: Regenerate.
4043
4044 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
4045
4046         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
4047         record with the type of its only member.
4048
4049 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
4050
4051         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
4052         define_insn_and_split.
4053         (plus_ltu<mode>_compare): Same.
4054         (gtu<mode>_compare): Same.
4055         (plus_gtu<mode>_compare): Same.
4056
4057 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
4058
4059         PR tree-optimization/22228
4060         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
4061         todo_flags_start.
4062         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
4063         are recorded in vect_vnames_to_rename for renaming.
4064         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
4065         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
4066         in vect_vnames_to_rename.
4067         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
4068         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
4069
4070 2005-08-18  Jan Hubicka  <jh@suse.cz>
4071
4072         PR c++/22034
4073         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
4074         info only for local statics, not for member variables.
4075
4076 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4077
4078         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
4079
4080 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4081
4082         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
4083
4084 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
4085
4086         PR middle-end/16045
4087         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
4088
4089 2005-08-17  James E Wilson  <wilson@specifix.com>
4090
4091         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
4092         array size check.
4093
4094 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
4095
4096         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
4097         (leu<mode>_compare): Same.
4098         (plus_leu<mode>): Same.
4099         (neg_leu<mode>): Same.
4100         (and_neg_leu<mode): Same.
4101         (ltu<mode>_compare): Same.
4102         (plus_ltu<mode>): Same.
4103         (geu<mode>): Same.
4104         (geu<mode>_compare): Same.
4105         (plus_geu<mode>): Same.
4106         (neg_geu<mode>): Same.
4107         (and_neg_geu<mode>): Same.
4108         (plus_gt<mode>): Same.
4109         (gtu<mode>_compare): Same.
4110         (plus_gtu<mode>): Same.
4111
4112 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
4113
4114         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
4115         Move call_table_data to end.  Delete spurious .text.
4116         (callt_save_all_interrupt): Fix comment typo.
4117
4118 2005-08-17  James E Wilson  <wilson@specifix.com>
4119             Kevin Winchester  <winchester@amirix.com>
4120
4121         PR target/21684
4122         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
4123
4124 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
4125
4126         PR target/23268
4127         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
4128         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
4129
4130 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
4131
4132         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
4133         record with the type of its only member if the modes don't match.
4134
4135         * varasm.c (decode_reg_name): Skip empty additional register names.
4136
4137 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
4138
4139         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
4140         lsm_tmp_name_length): New.
4141         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
4142         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
4143
4144 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4145             Andreas Krebbel  <krebbel1@de.ibm.com>
4146
4147         * config.gcc: Added z9-109 switch.
4148         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
4149         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
4150         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
4151         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
4152         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
4153         for "z9_109" cpu attribute.
4154         * config/s390/s390.c (z9_109_cost): New processor cost structure.
4155         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
4156         (s390_handle_arch_option): Added z9-109 switch.
4157         (override_options): Set respective cost function for z9-109.
4158         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
4159         (legitimate_reload_constant_p): Accept extended immediates.
4160         (print_operand): Three new output modifiers added: k, m and o.
4161         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
4162         (s390_output_mi_thunk): Use extended immediate when possible.
4163         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
4164         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
4165         (CONSTRAINT_LEN): Added length of O constraint.
4166         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
4167         * config/s390/s390.md ("cpu"): New value z9_109 added.
4168         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
4169         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
4170         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
4171         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
4172         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
4173         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
4174         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
4175         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
4176         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
4177         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
4178         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
4179         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
4180         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
4181         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
4182         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
4183         immediates.
4184         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
4185         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
4186         insns for TARGET_EXTIMM.
4187
4188 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4189
4190         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
4191
4192 2005-08-17  Nick Clifton  <nickc@redhat.com>
4193
4194         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
4195         Call default_encode_section_info.
4196
4197 2005-08-17  Steven Bosscher  <stevenb@suse.de>
4198
4199         PR tree-optimization/21574
4200         * tree-ssa-ccp.c (likely_value): If the right hand side is a
4201         constant, return CONSTANT.
4202         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
4203         (ccp_fold, visit_assignment): Likewise.
4204         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
4205
4206 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
4207
4208         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
4209         fold_buildN instead of buildN then fold_initializer or fold.
4210         (build_unary_op): Likewise.
4211         (build_binary_op): Likewise.
4212         * fold-const.c (fold_initializer): Remove.
4213         (fold_build1_initializer): New function.
4214         (fold_build2_initializer): New function.
4215         (fold_build3_initializer): New function.
4216         * tree.h (fold_initializer): Remove.
4217         (fold_build1_initializer): New function.
4218         (fold_build2_initializer): New function.
4219         (fold_build3_initializer): New function.
4220
4221 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
4222
4223         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
4224         (try_move_mult_to_index): Call fold_build2 instead of build2.
4225         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
4226         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
4227         fold_binary_to_constant.
4228         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
4229         fold (build.
4230         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
4231         check if A == gcd (A, B).  Remove TYPE argument.
4232         (analyze_offset) Use fold_build2 instead of fold (build.
4233         (create_data_ref): Likewise.
4234         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
4235         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
4236         then fold.
4237
4238 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
4239
4240         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
4241         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
4242
4243 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
4244
4245         PR tree-opt/23402
4246         * gimplify.c (zero_sized_type): New function.
4247         (gimplify_modify_expr_rhs): If we have a zero sized type,
4248         replace the statement with an empty statement.
4249
4250 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
4251
4252         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
4253         fxsave.
4254
4255 2005-08-16  Ian Lance Taylor  <ian@airs.com>
4256
4257         * doc/tm.texi (Label Output): Correct typo.
4258
4259 2005-08-16  Steven Bosscher  <stevenb@suse.de>
4260
4261         PR target/23376
4262         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
4263         force_operand will work later on using have_insn_for.
4264
4265 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4266
4267         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
4268
4269 2005-08-16  Ian Lance Taylor  <ian@airs.com>
4270
4271         PR c++/23337
4272         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
4273         vector type, don't try to construct it element by element.  Add an
4274         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
4275
4276 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4277
4278         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
4279
4280 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
4281
4282         * doc/invoke.texi (Precompiled Headers): Document some more options
4283         which are known to be safe.
4284
4285 2005-08-16  James E Wilson  <wilson@specifix.com>
4286
4287         PR tree-optimization/21105
4288         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
4289         TREE_OVERFLOW check.
4290
4291 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
4292
4293         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
4294         (neg_ltu<mode>): Same.
4295         (gtu<mode>): Same.
4296         (neg_gtu<mode>): Same.
4297
4298 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4299
4300         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
4301         (fold_builtin_isdigit): Use fold_buildN.
4302         (build_function_call_expr): Likewise.
4303         * c-typeck.c (c_finish_loop): Likewise.
4304
4305 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
4306             Richard Shann <rshann@superh.com>
4307
4308         PR middle-end/20396:
4309         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
4310
4311 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
4312
4313         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
4314
4315 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
4316
4317         PR target/23355
4318         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
4319         arm_compure_save_reg0_reg12_mask to determine when the PIC register
4320         must be saved.
4321
4322 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4323
4324         PR middle-end/23369
4325         * fold-const.c (build_range_check): Disable optimization for function
4326         pointer expressions on targets that require function pointer
4327         canonicalization.
4328
4329 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
4330
4331         * simplify-rtx.c (simplify_const_relational_operation): When
4332         extracting arguments of a COMPARE, recompute the mode as well.
4333
4334 2005-08-15  Ian Lance Taylor  <ian@airs.com>
4335
4336         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
4337
4338 2005-08-15  DJ Delorie  <dj@redhat.com>
4339
4340         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
4341         the stack.
4342         (movsi_splittable): Allow, but split, moves to the stack.
4343         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
4344         stack.
4345
4346 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4347
4348         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
4349         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
4350         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
4351
4352         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
4353         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
4354         Delete HOST_PTR_PRINTF.
4355
4356         * configure, config.in: Regenerate.
4357
4358 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
4359
4360         * config/rs6000/rs6000.md (QHSI): New mode macro.
4361         (wd): Extend mode attr for QImode and HImode
4362         (dbits): New mode attr.
4363         (zero_extend<mode>di2): Convert to mode macro.
4364
4365 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
4366
4367         PR target/21841
4368         * doc/invoke.texi (-mgnu-ld): Update description.
4369         (-mhp-ld): Ditto.
4370
4371 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
4372
4373         PR 23391
4374         * Makefile.in (tree-chrec.o): Depends on real.h.
4375         * tree-chrec.c: Include real.h.
4376         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
4377         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
4378         * tree-scalar-evolution.c (add_to_evolution_1,
4379         interpret_rhs_modify_expr): Ditto.
4380
4381 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
4382
4383         PR 23386
4384         * tree-data-ref.c (estimate_niter_from_size_of_data): When
4385         step is negative compute the estimation from init downwards to zero.
4386
4387 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
4388
4389         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
4390
4391 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
4392
4393         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
4394         constraint.
4395         (legitimate_reload_constant_p): Fix handling of lliXX operands.
4396         Accept double-word constants that can be split.
4397         * config/s390/s390.md ("movti"): Use 'P' constraint.
4398         ("*movdi_31", "*movdf_31"): Likewise.
4399
4400 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
4401
4402         Fix PR tree-optimization/22615
4403
4404         * tree-ssa-structalias.c (solution_set_add): Handle
4405         first_vi_for_offset returning NULL.
4406         (do_da_constraint): Ditto.
4407         (do_sd_constraint): Ditto.
4408         (do_ds_constraint): Ditto
4409         (find_func_aliases): Ditto.
4410         (build_constraint_graph): RHS is allowed be ANYTHING.
4411         (first_vi_for_offset): Return NULL if we couldn't find anything at
4412         the offset.
4413
4414 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
4415
4416         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
4417         over memory as first operand.
4418
4419 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
4420
4421         PR target/23360
4422         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
4423         available for setting it.
4424
4425 2005-08-14  Ira Rosen  <irar@il.ibm.com>
4426
4427         PR tree-optimization/23320
4428         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
4429         data-refs' types instead of base object nullness. Add check for
4430         pointer type data-refs before first location comparison. Remove
4431         assert.
4432
4433 2005-08-14  Andreas Schwab  <schwab@suse.de>
4434
4435         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
4436
4437 2005-08-13  James E Wilson  <wilson@specifix.com>
4438
4439         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
4440         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
4441         -fstack-protector-all, --param ssp-buffer-size): Document.
4442         (-Wvariadic-macros): Alphabetize.
4443         (-fsched-stalled-insns-dep): Add missing 'f'.
4444
4445         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
4446         macros.
4447
4448 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
4449
4450         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
4451         or indirect address operand.
4452         (EXTRA_ADDRESS_CONSTRAINT): New.
4453         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
4454
4455 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
4456
4457         PR tree-optimization/22236
4458         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
4459         successors and predecessors.
4460         * tree-chrec.c (chrec_convert): Before converting, check that
4461         sequences don't wrap.
4462         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
4463         (analyze_array): Extern.
4464         (find_data_references_in_loop): Remove call to
4465         compute_estimated_nb_iterations.
4466         * tree-data-ref.h (analyze_array): Declared.
4467         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
4468         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
4469         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
4470         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
4471         condition.
4472         * tree-ssa-loop-ivcanon.c: Fix documentation.
4473         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
4474         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
4475         (infer_loop_bounds_from_undefined): New.
4476         (estimate_numbers_of_iterations_loop): Use
4477         infer_loop_bounds_from_undefined.
4478         (used_in_pointer_arithmetic_p): New.
4479         (scev_probably_wraps_p): Pass an extra parameter.  Call
4480         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
4481         (convert_step): Fix documentation.
4482         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
4483         Use initial_condition_in_loop_num and evolution_part_in_loop_num
4484         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
4485         scev_probably_wraps_p.
4486
4487 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
4488
4489         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
4490         (s390_register_info): Ignore clobbered_regs information for fixed
4491         registers, and only fixed registers.
4492         (s390_init_frame_layout): Remove redundant call.
4493
4494 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
4495
4496         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
4497         description of -Wold-style-casts.
4498
4499 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4500             Jakub Jelinek  <jakub@redhat.com>
4501
4502         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
4503         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
4504         * config/s390/s390.c (print_operand): New output modifier 'G' added.
4505         (get_thread_pointer): Renamed to s390_get_thread_pointer.
4506         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
4507         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
4508         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
4509         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
4510         ("stack_protect_set", "stack_protect_test"): New expanders.
4511         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
4512         "stack_protect_testdi"): New insn definitions.
4513
4514 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4515
4516         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
4517
4518 2005-08-12  Paul Brook  <paul@codesourcery.com>
4519
4520         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
4521
4522 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4523
4524         * config/s390/predicates.md (setmem_operand): New predicate.
4525         (shift_count_operand): Accept ANDs with special constants as
4526         operand.
4527         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
4528         with special constants.
4529         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
4530         shift_count_operand with setmem_operand.
4531
4532 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4533
4534         * config/s390/s390.c (s390_extract_part, s390_single_part):
4535         Type cast added.
4536         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
4537         (s390_output_mi_thunk): Don't use lg on 31 bit.
4538         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
4539         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
4540
4541 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4542
4543         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
4544         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
4545         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
4546         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
4547         with one of the new macros.
4548
4549 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
4550
4551         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
4552         Don't set save_return_addr_p.
4553         (s390_register_info): Make clobbered_regs not depending on
4554         save_return_addr_p.
4555
4556 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4557
4558         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
4559         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
4560
4561 2005-08-11  James E. Wilson  <wilson@specifix.com>
4562
4563         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
4564
4565 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
4566
4567         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
4568         locations gathered by var-tracking in single entry loc_list
4569         over loc_descriptor_from_tree.
4570
4571         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
4572         pass it down to loc_descriptor.
4573         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
4574         (containing_function_has_frame_base): Move earlier in the file.
4575         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
4576         instead of always assuming fbreg can't be used.
4577
4578 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
4579
4580         * config/rs6000/altivec.md: Change constraint "m" to "Z".
4581         * config/rs6000/predicates.md (indexed_or_indirect_operand):
4582         Accept address wrapped in AND for Altivec.
4583         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4584         Strip AND wrapping offset address for Altivec.
4585
4586 2005-08-11  Richard Henderson  <rth@redhat.com>
4587
4588         PR middle-end/23312
4589         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
4590         before using TYPE_IS_SIZETYPE.
4591
4592 2005-08-11  Richard Henderson  <rth@redhat.com>
4593
4594         PR target/22225
4595         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
4596         insn types not present on ev4.
4597         (alphaev5_insn_pipe): Similarly.
4598
4599 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
4600
4601         PR target/23250
4602         * arm.c (arm_override_options): If the user has selected callee-super-
4603         interworking, then enable normal interworking.
4604
4605 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4606
4607         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
4608         redefinition.
4609
4610 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
4611
4612         * doc/rtl.texi: Fix two typos.
4613
4614 2005-08-11  Richard Guenther  <rguenther@suse.de>
4615
4616         PR target/23289
4617         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
4618         cases where we call to/from functions returning void.
4619
4620 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
4621
4622         PR c++/23225
4623         * tree.c (build_pointer_type_for_mode): Robustify.
4624
4625 2005-08-10  James E Wilson  <wilson@specifix.com>
4626
4627         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
4628         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
4629
4630         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
4631         "cum->".
4632
4633 2005-08-10  Eric Christopher  <echristo@apple.com>
4634
4635         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
4636         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
4637         V2DFmode.
4638
4639 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
4640
4641         PR target/21887
4642         * config/darwin.c (machopic_indirect_data_reference): Use a new register
4643         for the high part when generating dynamic-no-pic code.
4644
4645 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
4646
4647         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
4648         (x86_64-*-linux*): Likewise.
4649
4650         * config/i386/crtfastmath.c: New file.
4651         * config/i386/t-crtfm: Likewise.
4652
4653         * config/i386/linux.h (ENDFILE_SPEC): New.
4654         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
4655
4656         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
4657         crtfastmath.o.
4658
4659 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
4660
4661         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
4662         (vec_shl, vec_shr): Document new operations.
4663         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
4664
4665 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
4666
4667         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
4668         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
4669         change predicate to indexed_or_indirect_address.
4670
4671 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
4672
4673         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
4674         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
4675         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
4676         and __aeabi_uwrite8.
4677         * config/arm/unaligned-funcs.c: New file.
4678         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
4679
4680 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
4681
4682         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
4683         Add dump.
4684         * cfglayout.c (pass_insn_locators_initialize): Add dump.
4685         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
4686         Add dump.
4687         * except.c (pass_convert_to_eh_region_ranges): Add dump.
4688         * final.c (pass_shorten_branches): Add dump.
4689         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
4690         (pass_life): Rename dump.
4691         (rest_of_handle_flow2): Remove initial verify_flow_info.
4692         * function.c (pass_instantiate_virtual_regs): Add dump.
4693         * integrate.c (pass_initial_value_sets): Add dump.
4694         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
4695         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
4696         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
4697         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
4698         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
4699         gate_rtl_unrool_and_peel_loops): New.
4700         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
4701         rtl_doloop): Do not look at flags.
4702         * mode-switching.c (pass_mode_switching): Add dump.
4703         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
4704         pass_split_before_regstack): Add dump.
4705         * regmove.c (pass_stack_adjustments): Add dump.
4706         * tree-optimize.c (pass_fixup_cfg): Add dump.
4707
4708 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4709
4710         PR 23309
4711         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
4712         deciding which instruction sequence to use.
4713
4714 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
4715
4716         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
4717         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
4718
4719 2005-08-09  Richard Guenther  <rguenther@suse.de>
4720
4721         * c-common.c (builtin_function_2): Remove.
4722         (def_builtin_1): New function.
4723         (c_common_nodes_and_builtins): Use def_builtin_1 to
4724         build builtin functions.
4725
4726 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
4727
4728         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
4729         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
4730         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
4731         Visual DSP.
4732
4733 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
4734
4735         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
4736         fold_binary instead of fold_build2 since we don't care about the
4737         resulting tree.
4738         (loop_niter_by_eval): Likewise.
4739         (compare_trees): Likewise.
4740         (proved_non_wrapping_p): Likewise.
4741
4742 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
4743
4744         PR c/23161
4745         PR c/23165
4746         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
4747         if the if is really empty.
4748
4749 2005-08-09  Steven Bosscher  <stevenb@suse.de>
4750
4751         PR tree-optimization/23234
4752         * tree-ssa-math-opts.c (place_reciprocal): New enum.
4753         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
4754         argument of the new enum.
4755         (execute_cse_reciprocals): Add reciprocals for function arguments
4756         on the unique successor edge of the entry block.  Update other calls
4757         to execute_cse_reciprocals_1.
4758
4759 2005-08-08  Richard Henderson  <rth@redhat.com>
4760
4761         PR 22439
4762         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
4763
4764 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
4765
4766         * expr.c (write_complex_part): Return after handling MEM.
4767
4768 2005-08-08  Josh Conner  <jconner@apple.com>
4769
4770         PR rtl-optimization/23241
4771         * combine.c (simplify_comparison): Fix error in determining
4772         whether to lift a subreg from comparison.
4773
4774 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
4775
4776         PR target/18506
4777         * config/rs6000/altivec.md (vec_init<mode>): New.
4778         (vec_set<mode>): New.
4779         (vec_extract<mode>): New.
4780         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
4781         (rs6000_expand_vector_set): New.
4782         (rs6000_expand_vector_extract): New.
4783         (rs6000_legitimate_offset_address_p): Offset addresses are valid
4784         for Altivec modes before reload.
4785         (altivec_expand_vec_init_builtin): New.
4786         (get_element_number): New.
4787         (altivec_expand_vec_set_builtin): New.
4788         (altivec_expand_vec_ext_builtin): New.
4789         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
4790         builtins.
4791         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
4792         builtins.
4793         * config/rs6000/rs6000.h (rs6000_builtins): Add
4794         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
4795         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
4796         * config/rs6000/rs6000-protos.h: Declare new functions.
4797
4798 2005-08-08  Jan Hubicka  <jh@suse.cz>
4799
4800         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
4801         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
4802         * i386.md (movdi*): Use pic_32bit_operand.
4803         * predicates.md (pic_32bit_operand): New.
4804
4805 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
4806
4807         PR c++/21166
4808         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
4809
4810 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
4811
4812         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
4813         (test_for_singularity): Use fold_build2.
4814
4815 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4816
4817         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
4818
4819 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
4820
4821         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
4822         (COMMON_ASM_OP) Define.
4823         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
4824         (ix86_encode_section_info): Likewise.
4825         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
4826         SUBTARGET_ENCODE_SECTION_INFO.
4827
4828 2005-08-06  Richard Henderson  <rth@redhat.com>
4829
4830         PR 21894
4831         * tree-nested.c (convert_local_reference): Save and restore val_only
4832         around component_ref and friends.  Clear walk_subtrees by default.
4833
4834 2005-08-06  Peter O'Gorman  <peter@pogma.com>
4835
4836         PR 21366
4837         * gcc.c (process_command): Check the argument to -b has a dash.
4838         * doc/invoke.texi: Update -b and -V docs.
4839
4840 2005-08-06  James E Wilson  <wilson@specifix.com>
4841
4842         * config/mips/cross64.h, config/mips/t-cross64: Delete.
4843
4844 2005-08-06  Michael Matz  <matz@suse.de>
4845
4846         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
4847         member only if only one insn is associated with the value.
4848
4849 2005-08-06  Nick Clifton  <nickc@redhat.com>
4850
4851         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
4852         New define.
4853         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
4854         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
4855         Check symbol flags instead of symbol name mangling.
4856         (xstormy16_asm_output_aligned_common): Likewise.  Also
4857         simplify code since the bss100_section cass is the only case
4858         where the below100 code will be triggered.
4859         (xstormy16_encode_section_info): Encode below100 attribute
4860         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
4861         the name.
4862         (xstormy16_strip_name_encoding): Delete - this function is no
4863         longer needed.
4864         (TARGET_STRIP_NAME_ENCODING): Undefine.
4865         * config/stormy16/stormy16-protos.h: Delete prototype for
4866         xstormy16_strip_name_encoding.
4867
4868 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
4869
4870         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
4871         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
4872         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
4873         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
4874         config/alpha/predicates.md, config/arc/arc.h,
4875         config/arm/arm.h, config/arm/ieee754-df.S,
4876         config/arm/ieee754-sf.S, config/bfin/bfin.c,
4877         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
4878         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
4879         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
4880         config/m68hc11/m68hc11.h, config/mips/mips.c,
4881         config/mips/mips.h, config/mips/openbsd.h,
4882         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
4883         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
4884         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
4885         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
4886         config/sparc/linux.h, config/sparc/linux64.h,
4887         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
4888         doc/extend.texi, doc/gcov.texi, doc/install.texi,
4889         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
4890         typos.  Follow spelling conventions.
4891
4892 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
4893
4894         PR c/23113
4895         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
4896         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
4897         specially.  Check for side effects only for COND_EXPR.
4898         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
4899         return with TREE_NO_WARNING.
4900
4901 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
4902
4903         PR rtl-optimization/23233
4904         * loop.c (combine_movables): Require the modes to be the same.
4905         (move_movables): Remove handling of cases where the replacement
4906         had a different mode to the original.
4907
4908 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
4909
4910         PR tree-optimization/23128
4911         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
4912         subtraction wrap, and set TREE_OVERFLOW if they do.
4913
4914 2005-08-05  Richard Henderson  <rth@redhat.com>
4915
4916         PR 21728
4917         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
4918         FORCED_LABEL labels.
4919
4920 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
4921
4922         PR middle-end/23135
4923         * reload.c (find_reloads_subreg_address): Pass down TYPE
4924         unchanged.  Change all callers except find_reloads_toplev.
4925
4926 2005-08-05  Michael Matz  <matz@suse.de>
4927
4928         * genattrtab.c (current_alternative_string): Remove.
4929         (SIMPLIFY_ALTERNATIVE): Ditto.
4930         (attr_alt_bit_p): Ditto.
4931         (alternative_name): Make const char *.
4932         (evaluate_eq_attr): Remove use of above things.
4933         (simplify_test_exp): Ditto.
4934         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
4935         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
4936
4937 2005-08-04  James E Wilson  <wilson@specifix.com>
4938
4939         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
4940         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
4941         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
4942         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
4943         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
4944
4945 2005-08-04  Richard Henderson  <rth@redhat.com>
4946
4947         PR 21529
4948         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
4949         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
4950         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
4951         if we'd have to instantiate too many members.
4952
4953 2005-08-04  Richard Henderson  <rth@redhat.com>
4954
4955         PR 21291
4956         * tree-outof-ssa.c (coalesce_asm_operands): New.
4957         (coalesce_ssa_name): Use it.  Split out ...
4958         (coalesce_phi_operands, coalesce_result_decls): ... these.
4959
4960 2005-08-04  Paul Brook  <paul@codesourcery.com>
4961
4962         * read-rtl.c (read_quoted_string): Break if EOF.
4963
4964 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
4965
4966         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
4967         (fold_build2): Likewise.
4968         (fold_build3): Likewise.
4969         (fold_build1_stat): New function prototype.
4970         (fold_build2_stat): Likewise.
4971         (fold_build3_stat): Likewise.
4972         * fold-const.c (fold_build1): Rename to ..
4973         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
4974         through to build1_stat.
4975         (fold_build2): Rename to ..
4976         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
4977         through to build2_stat.
4978         (fold_build3): Rename to ..
4979         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
4980         through to build3_stat.
4981
4982 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
4983             Ian Lance Taylor  <ian@airs.com>
4984
4985         * function.c (assign_stack_local_1): Do not correct stack slot
4986         address if allocation size is smaller than mode size.
4987
4988 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
4989
4990         PR 22037
4991         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
4992         (tree_merge_blocks): Propagate anything allowed by
4993         may_propagate_copy.
4994         Clarify documentation.
4995         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
4996         SSA form, schedule an update if necessary.
4997
4998 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
4999
5000         * doc/install.texi (Binaries): Remove broken link to
5001         Sinix/Reliant Unix binaries.
5002
5003 2005-08-03  Richard Henderson  <rth@redhat.com>
5004
5005         PR 23221
5006         * function.c (stack_protect_epilogue): Export.
5007         * tree.h (stack_protect_epilogue): Declare.
5008         * calls.c (expand_call): Call it.
5009
5010 2005-08-03  Eric Christopher  <echristo@apple.com>
5011
5012         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
5013         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
5014         spec.
5015
5016 2005-08-04  Jan Hubicka  <jh@suse.cz>
5017
5018         * profile.c (branch_prob): Split edges with goto locus on them
5019         to get proper line counts.
5020         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
5021
5022 2005-08-03  Paul Brook  <paul@codesourcery.com>
5023
5024         * function.c (assign_parms): Round current_function_args_size
5025         to PARM_BOUNDARY, not STACK_BOUNDARY.
5026
5027 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
5028
5029         * config/i386/i386.c (x86_elf_aligned_common)
5030         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
5031
5032 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
5033
5034         PR tree-optimization/23157
5035         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
5036         before emitting them.
5037
5038 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5039
5040         PR tree-optimization/19899
5041         * Makefile.in (tree-scalar-evolution.o): Add real.h.
5042         * tree-scalar-evolution.c: Include real.h.
5043         (add_to_evolution): Build constant -1 of correct type.
5044
5045 2005-08-03  Jan Hubicka  <jh@suse.cz>
5046
5047         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
5048         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
5049         profile updating for complette unrolling.
5050         * loop-unroll.c (peel_loop_completely): Use it.
5051         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
5052         (tree_unroll_loops_completely): Disable code growing unrolling of cold
5053         loops.
5054
5055 2005-08-03  Paul Brook  <paul@codesourcery.com>
5056
5057         * combine.c (can_change_dest_mode): New function.
5058         (try_combine, simplify_set): Use it.
5059
5060 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
5061
5062         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
5063         TFmode to BLKmode.
5064
5065 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
5066
5067         * doc/install.texi (Specific): Adjust link to openavr.org.
5068         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
5069         (Binaries): Adjust HP-UX Porting Center link.
5070         (Binaries): Adjust Free Software Foundation ordering link.
5071
5072 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
5073
5074         * convert.c (convert_to_integer): Use fold_build1 instead of
5075         build1 when converting an integer to an integer.
5076
5077 2005-08-02  Richard Henderson  <rth@redhat.com>
5078
5079         * combine.c (combine_instructions): Don't use reg_equal/equiv
5080         results if the mode doesn't match.
5081
5082 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
5083
5084         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
5085         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
5086
5087 2005-08-02  Richard Henderson  <rth@redhat.com>
5088
5089         PR 23196
5090         * explow.c (memory_address): Remove special-case for
5091         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
5092
5093 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
5094
5095         PR 23164
5096         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
5097         number of calls to cleanup_tree_cfg_1.
5098
5099 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
5100
5101         * doc/invoke.texi: document file extensions .F90 and .F95
5102
5103 2005-08-02  Richard Guenther  <rguenther@suse.de>
5104
5105         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
5106         positive if its first argument is positive.
5107
5108 2005-08-02  Richard Guenther  <rguenther@suse.de>
5109
5110         PR tree-optimization/23177
5111         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
5112         on TMR_TAG.
5113
5114 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
5115
5116         PR tree-optimization/23129
5117         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
5118         varying for divisions with anti-ranges.
5119
5120 2005-08-02  Jan Hubicka  <jh@suse.cz>
5121
5122         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
5123         * tree-ssa-threadupdate.c (thread_block): Add it here.
5124
5125 2005-08-01  James E Wilson  <wilson@specifix.com>
5126
5127         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
5128         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
5129         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
5130         New.
5131         * config/mips/predicates.md (const_call_insn_operand): Add check for
5132         SYMBOL_REF_LONG_CALL_P.
5133         * doc/extend.texi (long_call): Document the new attribute.
5134
5135 2005-08-01  Ian Lance Taylor  <ian@airs.com>
5136             Richard Henderson  <rth@redhat.com>
5137
5138         * Makefile.in (RTL_BASE_H): Add real.h.
5139         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
5140         instead of memcpy.
5141         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
5142         directly.
5143         * rtl.c (rtl_check_failed_code_mode): New.
5144         * rtl.h (struct rtx_def): Add u.rv.
5145         (XCMWINT, XCNMPRV): New.
5146         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
5147         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
5148
5149 2005-08-01  Richard Henderson  <rth@redhat.com>
5150
5151         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
5152         with auto-inc codes.
5153
5154         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
5155
5156 2005-08-01  Jan Hubicka  <jh@suse.cz>
5157
5158         * i386-protos.h (asm_preferred_eh_data_format): Declare.
5159         * i386.c: Include dwarf2.h
5160         (asm_preferred_eh_data_format): New.
5161         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
5162
5163 2005-08-01  Ian Lance Taylor  <ian@airs.com>
5164
5165         * config/host-linux.c (linux_gt_pch_get_address): Add new name
5166         randomize_va_space for virtual address randomization control.
5167
5168 2005-08-01  Steven Bosscher  <stevenb@suse.de>
5169
5170         * common.opt (flag_ipa_cp): Put in right place to maintain
5171         alphabetic sort.
5172
5173 2005-08-01  Jan Hubicka  <jh@suse.cz>
5174
5175         * profile.c (compute_value_histograms): Fix thinko.
5176         * value-prof.c: Include toplev.h
5177         (check_counter): New function.
5178         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
5179         tree_mod_subtract_transform): Add sanity check.
5180
5181 2005-08-01  Richard Guenther  <rguenther@suse.de>
5182
5183         PR tree-optimization/23133
5184         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
5185         current functions parameter decls to find defs to cse
5186         reciprocals of.
5187
5188 2005-08-01  Richard Guenther  <rguenther@suse.de>
5189
5190         PR tree-optimization/23109
5191         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
5192         If trapping math is in effect, use post-dominator information
5193         to check if we'd in any case reach a trapping point before
5194         doing the reciprocal insertion.
5195         (execute_cse_reciprocals): Compute post-dominators, if necessary.
5196         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
5197         expressions are invariant only if trapping math is not in effect.
5198
5199 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
5200
5201         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
5202         cgraph_function_versioning): New declarations.
5203         * cgraphunit.c: Add include to ipa-prop.h.
5204         (update_call_expr, cgraph_copy_node_for_versioning,
5205         cgraph_function_versioning): New functions.
5206         * integrate.c (copy_decl_for_inlining): Remove.
5207         * ipa-prop.h (ipa_replace_map): New struct.
5208         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
5209         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
5210         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
5211         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
5212         ipcp_iterate_stage, ipcp_method_scale_print,
5213         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
5214         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
5215         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
5216         ipcp_update_bb_counts, ipcp_update_profiling,
5217         ipcp_update_edges_counts): New functions.
5218         (ipcp_method_cval_init): Remove restriction regarding local methods.
5219         (ipcp_init_stage): Add ipcp_method_compute_scale.
5220         (ipcp_insert_stage): Add versioning.
5221         (ipcp_structures_print): Add ipcp_method_scale_print.
5222         (ipcp_driver): Dump profiling info.
5223         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
5224         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
5225         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
5226         (struct inline_data): Add versioning_p, ipa_info, new fields.
5227         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
5228         declare_return_variable): Replace calls to copy_decl_for_inlining with
5229         copy_decl_for_dup.
5230         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
5231         versioning support.
5232         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
5233         Add argument VERSIONING.
5234         (copy_arguments_for_versioning, copy_static_chain,
5235         function_versionable_p, tree_versionable_function_p,
5236         tree_function_versioning, replace_ref_tree): New functions.
5237         * tree-inline.h: Include varray.h.
5238         (tree_versionable_function_p,  tree_function_versioning,
5239         tree copy_decl_for_dup): New declarations.
5240
5241 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
5242
5243         * ipa-cp.c: New file. Contains IPCP specific functionality.
5244         * ipa-prop.h: New file. Contains structures/definitions that can be
5245         used by several interprocedural data flow optimizations (and also IPCP).
5246         * ipa-prop.c: New file.
5247         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
5248         * common.opt: Add ipa-cp flag.
5249         * timevar.def: Add IPCP optimization.
5250         * tree-optimize.c (init_tree_optimization_passes): Schedule
5251         pass_ipa_cp.
5252         * tree-pass.h (pass_ipa_cp): Declare.
5253
5254 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
5255
5256         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
5257         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
5258         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
5259         config/i386/i386.c, config/mips/mips.h,
5260         config/rs6000/rs6000.h, config/sh/sh.c,
5261         config/stormy16/stormy16.c: Fix comment typos.
5262
5263 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
5264
5265         PR c/22311
5266         * c-typeck.c (build_binary_op): Use common_type wrapper on
5267         shortened types.
5268         (common_type): Update comment.
5269
5270 2005-07-31  Steven Bosscher  <stevenb@suse.de>
5271
5272         PR target/23095
5273         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
5274         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
5275         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
5276
5277 2005-07-31  Jan Hubicka  <jh@suse.cz>
5278
5279         * pretty-print.h (pp_widest_integer): New macro.
5280         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
5281         counts.
5282
5283 2005-07-31  Jan Hubicka  <jh@suse.cz>
5284
5285         * output.h (enum section_category): Export from varasm.c
5286         (categorize_decl_for_section): Likewise.
5287         * varasm.c (enum section_category): Kill.
5288         (categorize_decl_for_section): Make global.
5289         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
5290         Declare.
5291         * i386.c (ix86_section_threshold): New static variable.
5292         (ix86_in_large_data_p, ix86_encode_section_info,
5293         x86_64_elf_unique_section,
5294         x86_64_elf_select_section): New functions.
5295         (TARGET_ENCODE_SECTION_INFO): Define
5296         (override_options): Enable medium model for PIC.
5297         (ix86_expand_prologue): Expand gen_set_got_rex64.
5298         (legitimate_constant_p): Handle new UNSPECs.
5299         (legitimate_pic_address_disp_p): Likewise.
5300         (legitimize_pic_address): Lower MEDIUM model addressing.
5301         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
5302         (enum cmodel): Add MEDIUM_PIC.
5303         (SYMBOL_REF_FAR_ADDR_P): New macro.
5304         (SYMBOL_FLAG_FAR_ADDR): New flag.
5305         * i386.md (movdi): Support medium model.
5306         (set_got_rex64): New pattern.
5307         * i386.opt (mlarge-data-threshold): New flag.
5308         * predicates.md (zext_operand/sext_operand): Deal with medium model.
5309         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
5310         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
5311         TARGET_ASM_UNIQUE_SECTION): New.
5312
5313         * invoke.texi (-mlarge_data_threshold): Document
5314
5315 2005-07-31  Jan Hubicka  <jh@suse.cz>
5316
5317         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
5318         (coalesce_vars): Likewise.
5319         * tree-ssa-live.c (coalesce_cost): New.
5320         (build_tree_conflict_graph): Use coalesce_cost.
5321         * tree-ssa-live.h (coalesce_cost): Declare.
5322
5323 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
5324
5325         * arm.md (all peepholes for post-increment operations): Delete.
5326         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
5327         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
5328         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
5329         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
5330         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
5331
5332 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
5333
5334         * fold-const.c (tree_expr_nonnegative_p): Always return true for
5335         non-integral types.
5336
5337 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
5338
5339         PR target/22582
5340         * doc/invoke.texi: Document -rdynamic.
5341
5342 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
5343
5344         PR c/23143
5345         * c-parser.c (c_parser_parms_list_declarator): Call
5346         mark_forward_parm_decls.
5347         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
5348         decls with visibility structure.
5349
5350 2005-07-30  Paul Brook  <paul@codesourcery.com>
5351
5352         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
5353
5354 2005-07-30  Paul Brook  <paul@codesourcery.com>
5355
5356         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
5357         prototype.
5358         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
5359         value for mode.
5360         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
5361
5362 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5363
5364         PR c/529
5365         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
5366         nested function declarators.
5367         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
5368         (grokparms): Call warn_if_shadowing for parameters used within the
5369         parameter list.
5370         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
5371         not used within the parameter list.
5372         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
5373
5374 2005-07-30  Jan Hubicka  <jh@suse.cz>
5375
5376         * expr.c (expand_expr_real_1): Do not load mem targets into register.
5377         * i386.c (ix86_fixup_binary_operands): Likewise.
5378         (ix86_expand_unary_operator): Likewise.
5379         (ix86_expand_fp_absneg_operator): Likewise.
5380         * optabs.c (expand_vec_cond_expr): Validate dest.
5381
5382 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5383
5384         PR c/21720
5385         * real.c (real_from_string): Also set last bit if there is a
5386         nonzero hex digit beyond GCC's internal precision after ".".
5387
5388 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
5389
5390         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
5391         define_constants.  Change duplicate values to unassigned numbers.
5392         Change UNSPEC_SUBS to UNSPEC_VSUBS.
5393         (*altivec_vspltsf): New.
5394         (altivec_vperm_v4sf): Delete.
5395         (altivec_vperm_<mode>): Use mode macro V.
5396         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
5397         (altivec_predicate_v4sf): Delete.
5398         (altivec_predicate_<mode>): Use mode macro V.
5399         (*altivec_lvesfx): New.
5400         (*altivec_stvesfx): New.
5401         (vec_realign_load_v4sf): Delete.
5402         (vec_realign_load_<mode>): Use mode macro V.
5403         * config/rs6000/rs6000.c (generate_set_vrsave): Use
5404         UNSPECV_SET_VRSAVE.
5405
5406 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
5407
5408         PR bootstrap/23131
5409         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
5410         string.
5411         * configure: Regenerated.
5412
5413 2005-07-29  Paul Brook  <paul@codesourcery.com>
5414
5415         * doc/install.texi: Add link to GFortran binaries wiki page.
5416
5417 2005-07-29  David Ung  <davidu@mips.com>
5418
5419         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
5420         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
5421         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
5422         * config/mips/mips.md (cpu): Add 5kf name.
5423         (includes): Includes 5k.md.
5424         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
5425         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
5426         -march flag.
5427
5428 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
5429
5430         PR 22550
5431         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
5432         (cleanup_tree_cfg): ... here.
5433         Call cleanup_tree_cfg_1 until there are no more cleanups to
5434         do.
5435
5436 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
5437
5438         * tree-vrp.c (compare_range_with_value): Return true or false
5439         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
5440         EQ_EXPR respectively.
5441
5442 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
5443
5444         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
5445         Fix comment typos.
5446
5447 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
5448
5449         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
5450         (tree_ssa_dominator_optimize): Increment it.
5451         (dump_dominator_optimization_stats): Print it.
5452
5453 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
5454             Steven Bosscher  <stevenb@suse.de>
5455
5456         PR rtl-optimization/23117
5457         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
5458         when head == tail.  Tidy comment.
5459
5460 2005-07-28  Richard Henderson  <rth@redhat.com>
5461
5462         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
5463         * cselib.c (rtx_equal_for_cselib_p): Likewise.
5464         * jump.c (rtx_renumbered_equal_p): Likewise.
5465         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
5466         CONST_INT and CONST_DOUBLE.
5467         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
5468         * reload.c (operands_match_p): Special case CONST_INT and
5469         CONST_DOUBLE; check mode earlier.
5470
5471 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5472
5473         PR c/22240
5474         * c-typeck.c (convert_for_assignment): Do not check
5475         DECL_IN_SYSTEM_HEADER on NULL fundecl.
5476
5477 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5478
5479         PR c/22192
5480         * c-typeck.c (composite_type): Prefer constant size arrays to
5481         VLAs.
5482
5483 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
5484
5485         PR c/21720
5486         * real.c (real_from_string): Set last bit if there is a nonzero
5487         hex digit beyond GCC's internal precision.
5488
5489 2005-07-28  Richard Henderson  <rth@redhat.com>
5490
5491         PR rtl-opt/22619
5492         * cfgcleanup.c (try_forward_edges): Watch out for end of
5493         insn chain.
5494
5495 2005-07-28  James E Wilson  <wilson@specifixinc.com>
5496
5497         PR c/23106
5498         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
5499
5500 2005-07-28  Jan Hubicka  <jh@suse.cz>
5501
5502         * Makefile.in (rtl-profile.o): Kill all traces of it.
5503         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
5504         * coverage.h (rtl_coverage_counter_ref): Kill.
5505         * opts.c (flag_speculative_prefetching_set): Kill.
5506         (flag_loop_optimize_set): New.
5507         (common_handle_option): Disable loop optimizer when profiling;
5508         do not handle speculative prefetching.
5509         * passes.c (init_optimization_passes): Replace pass_profiling combo
5510         by branch_prob pass.
5511         * profile.c (compute_value_histograms): Update for simplified value
5512         profiles.
5513         (rtl_register_profile_hooks): Kill.
5514         (pass_profiling): Kill.
5515         (rest_of_handle_branch_prob): Do not profile.
5516         * toplev.c (process_options): Remove speculative prefetching.
5517         * toplev.h (flag_tree_based_profiling): Kill.
5518         * tree-profile.c (prepare_instrumented_value,
5519         tree_gen_interval_profiler, tree_gen_pow2_profiler,
5520         tree_gen_one_value_profiler, do_tree_profiling): Update for
5521         simplified datastructures.
5522         * value-prof.c: Add comment that speculative prefetching was dropped;
5523         update rest of file for simplified datastructures.
5524         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
5525         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
5526         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
5527         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
5528         rtl_mod_subtract, gen_speculative_prefetch,
5529         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
5530         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
5531         (gate_handle_value_profile_transformations,
5532         rest_of_handle_value_profile_transformations,
5533         pass_value_profile_transformations): Kill.
5534         * value-prof.h (histogram_value_t): Remove IL based unions.
5535         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
5536         rtl_profile_hooks): Remove hooks.
5537
5538         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
5539
5540         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
5541         (cgraph_clone_node): Likewise.
5542         * cgraph.h (cgraph_clone_edge): Update prototype.
5543         (cgraph_clone_node): Likewise.
5544         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
5545         cgraph_clone_node.
5546         (lookup_recursive_calls): Consider profile.
5547         (cgraph_decide_recursive_inlining): Fix updating; use new
5548         probability argument; use profile.
5549         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
5550         * tree-inline.c (copy_bb): Update clal of clone_edge.
5551         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
5552
5553         * invoke.texi (min-inline-recursive-probability): Document.
5554
5555 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
5556
5557         * doc/install.texi (Configuration): Update Valgrind homepage.
5558
5559 2005-07-28  Richard Henderson  <rth@redhat.com>
5560
5561         PR middle-end/21362
5562         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
5563         labels we want to delete.
5564         (cfg_layout_merge_blocks): Likewise.
5565
5566 2005-07-28  Richard Henderson  <rth@redhat.com>
5567
5568         PR target/17692
5569         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
5570         when expanding to nothing.
5571
5572 2005-07-28  Josh Conner  <jconner@apple.com>
5573
5574         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
5575         (cgraph_decide_inlining_of_small_functions): Likewise.
5576
5577 2005-07-28  Josh Conner  <jconner@apple.com>
5578
5579         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
5580         direction of badness if negative.
5581         (cgraph_default_inline_p): Add reason to parameters, and assign it
5582         a value.
5583         (cgraph_decide_inlining_of_small_functions): New parameter in call
5584         to cgraph_default_inline_p.
5585         (cgraph_decide_inlining_incrementally): Likewise.
5586         * cgraphunit.c (decide_is_function_needed): Likewise.
5587         * cgraph.h (cgraph_default_inline_p): Likewise.
5588
5589 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5590
5591         * builtins.c: Fix comment typo(s).
5592         * genautomata.c: Likewise.
5593         * gimplify.c: Likewise.
5594         * tree-dfa.c: Likewise.
5595         * tree-flow-inline.h: Likewise.
5596         * tree-into-ssa.c: Likewise.
5597         * tree-ssa-alias.c: Likewise.
5598         * tree-ssa-ccp.c: Likewise.
5599         * tree-ssa-copy.c: Likewise.
5600         * tree-ssa-dce.c: Likewise.
5601         * tree-ssa-dom.c: Likewise.
5602         * tree-ssa-operands.c: Likewise.
5603         * tree-tailcall.c: Likewise.
5604         * tree-vectorizer.c: Likewise.
5605         * tree-vrp.c: Likewise.
5606         * tree.c: Likewise.
5607
5608 2005-07-28  Jeff Law  <law@redhat.com>
5609
5610         * tree-vrp.c (test_for_singularity): Extracted from  ...
5611         (simplify_cond_using_ranges): Attempt to simplify a relational
5612         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
5613
5614 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
5615
5616         PR tree-optimization/22506
5617         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
5618         phis whose argument is constant.
5619
5620 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
5621
5622         PR rtl-optimization/18992
5623         Back out this patch:
5624           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5625           PR optimization/12142
5626           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
5627           uses of the register in the SET_SRC.  Remove unnecessary argument.
5628
5629         Replace it with this:
5630         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
5631         if flag_non_call_exceptions is set and the insn may trap, pass
5632         pc_rtx as dest for recursion.
5633         In SET_SRC part of SET case, if dest is already set, pass it down
5634         unchanged.
5635
5636 2005-07-28  Jan Hubicka  <jh@suse.cz>
5637
5638         * cfg.c (update_bb_profile_for_threading): Use RDIV.
5639         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
5640         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
5641         roundoff errors.
5642         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
5643         profile when available.
5644
5645 2005-07-28  Jan Beulich <jbeulich@novell.com>
5646
5647         * config/ia64/ia64.c (ia64_load_pair_ok): New.
5648         (ia64_print_operand): Describe and handle 'X'.
5649         (ia64_register_move_cost): Also handle FP_REGS.
5650         (ia64_preferred_reload_class): Likewise.
5651         (ia64_secondary_reload_class): Likewise.
5652         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
5653         it. Also check for ITANIUM_CLASS_FLDP.
5654         * config/ia64/ia64.h (FP_REGNO_P): New.
5655         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
5656         (reg_class): Add FP_REGS.
5657         (REG_CLASS_NAMES): Adjust for it.
5658         (REG_CLASS_CONTENTS): Likewise.
5659         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
5660         (REG_CLASS_FROM_LETTER): Handle 'x'.
5661         (CLASS_MAX_NREGS): Handle FP_REGS.
5662         (MEMORY_MOVE_COST): Likewise.
5663         * config/ia64/ia64.md (itanium_class): Add fldp.
5664         (type): Handle fldp.
5665         (movti_internal): More allowable operand combinations. Use ldfp8 when
5666         splitting unnecessary. Remove predicable attribute. Adjust
5667         itanium_class attribute.
5668         (smuldi3_highpart): Remove outdated comment.
5669         (mulditi3, umulditi3, rotlti3): New expanders.
5670         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
5671         (absti2): Disabled new insn for future reference.
5672         Respective new splitters.
5673         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
5674         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
5675         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
5676
5677 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
5678
5679         PR rtl-optimization/23047
5680         * simplify-rtx.c (simplify_const_relational_operation): Respect
5681         flag_wrapv for comparisons with ABS.
5682
5683 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
5684
5685         PR tree-optimization/22493
5686         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
5687         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
5688
5689 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
5690
5691         * config/frv/frv.opt (moptimize-membar): New.
5692
5693         * doc/invoke.texi: Document -moptimize-membar and its inverse.
5694
5695         * config/frv/frv.h: Remove machine_function definition.
5696
5697         * config/frv/frv.c (struct frv_io): New.
5698         (struct machine_function): Moved from frv.h.  Add has_membar_p.
5699         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
5700         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
5701         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
5702         (frv_optimize_membar_global, frv_optimize_membar): New functions.
5703         (frv_reorg): Call frv_optimize_membar when appropriate.
5704         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
5705         (frv_expand_builtin): Adjust calls accordingly.
5706         (frv_io_address_cookie): New function.
5707         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
5708         load or store rather than a special insn.  Add ccnstant address and
5709         io-type operands to the membar.
5710         (frv_ifcvt_modify_tests): Unsign regno.
5711         (frv_ifcvt_modify_tests): Same.
5712
5713         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
5714         UNSPEC_OPTIONAL_MEMBAR constant.
5715         (builtin_read_<mode>): Delete.
5716         (builtin_write_<mode>): Delete.
5717         ("optional_membar_<mode>"): Add operand.
5718
5719         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
5720         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
5721         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
5722         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
5723         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
5724         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
5725         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
5726         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
5727         * testsuite/gcc.target/frv/all-read-write-1.c: New.
5728
5729 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5730
5731         * df.c (df_uses_record): Handle SCRATCH.
5732
5733 2005-07-28  Steven Bosscher  <stevenb@suse.de>
5734
5735         PR debug/20161
5736         * passes.c (rest_of_decl_compilation): If decl is a type and
5737         we have encountered errors, don't emit debug information.
5738
5739 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
5740
5741         * params.def: Fixed comment.
5742
5743 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
5744
5745         PR target/19885
5746         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
5747         (TARGET_ASM_UNALIGNED_HI_OP): Add.
5748         (TARGET_ASM_UNALIGNED_SI_OP): Add.
5749
5750 2005-07-27  Steven Bosscher  <stevenb@suse.de>
5751
5752         PR c++/22003
5753         * varasm.c (assemble_start_function): Don't do anything that may
5754         require a CFG if the current function is a thunk.
5755
5756 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
5757
5758         * doc/install.texi (Prerequisites): Mention that perl is needed
5759         to do export control in libstdc++ targetting Darwin.
5760
5761 2005-07-27  Steven Bosscher  <stevenb@suse.de>
5762
5763         PR rtl-optimization/17808
5764         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
5765         (sched_insns_conditions_mutex_p): Split out from...
5766         (add_dependence): ...here.  But don't call it from here.
5767         (add_dependence_list): Check sched_insns_conditions_mutex_p
5768         before calling add_dependence.
5769         (add_dependence_list_and_free): Likewise.
5770         (fixup_sched_groups): Likewise.
5771         (sched_analyze_1): Likewise.
5772         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
5773         (sched_analyze): Likewise.
5774         (sched_analyze_insn): Likewise.
5775         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5776         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
5777         dependencies on all COND_EXEC insns to jumps ending basic blocks
5778         when doing intrablock scheduling.
5779         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
5780
5781 2005-07-27  Jeff Law  <law@redhat.com>
5782
5783         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
5784         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
5785         equivalency sets, correctly handle the case were vr0 has an
5786         equivalency set, but vr1 does not.
5787
5788 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
5789
5790         PR tree-optimization/23073
5791         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
5792         vect_print_dump_info before fprintf.
5793
5794 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
5795
5796         PR tree-optimize/22348
5797         * tree-ssa-loop-niter.c (number_of_iterations_cond):
5798         Fold the partial computation.
5799
5800 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
5801
5802         PR tree-optimization/22325
5803         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
5804         Declare.
5805         * tree-scalar-evolution.c (scev_const_prop): Add generic final
5806         value replacement.
5807         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
5808         (force_var_cost): ... this function.
5809         (compute_phi_arg_on_exit): Export.
5810
5811 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
5812
5813         PR tree-optimization/20773
5814         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
5815         edge.
5816
5817 2005-07-27  Richard Guenther  <rguenther@suse.de>
5818
5819         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
5820         Avoid pushing again if current struct contains only
5821         fields we decomposed.
5822
5823 2005-07-27  Jan Hubicka  <jh@suse.cz>
5824
5825         PR tree-optimization/22574
5826         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
5827         not available.
5828
5829         * tree-tailcall.c (decrease_profile): New function.
5830         (eliminate_tail_call): Use it.
5831
5832         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
5833         visibility flags correctly in whole program mode.
5834
5835 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
5836
5837         PR rtl-optimization/22472
5838         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
5839
5840 2005-07-26  Steven Bosscher  <stevenb@suse.de>
5841
5842         PR tree-optimization/22504
5843         * tree-complex.c (expand_complex_addition): Use 'code' instead
5844         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
5845
5846 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
5847
5848         * config.gcc (cpu_type): Add frv case.
5849         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
5850         (supported_defaults): Add fr550 case.
5851
5852 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
5853
5854         PR 22591
5855         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
5856         whether a pointer of type T * may point to objects of type T *.
5857
5858 2005-07-26  DJ Delorie  <dj@redhat.com>
5859
5860         * configure: Regenerate.
5861
5862 2005-07-26  Dale Johannesen  <dalej@apple.com>
5863
5864         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
5865
5866 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
5867
5868         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
5869         Clarify use of "build" in name.
5870
5871 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
5872
5873         * doc/extend.texi (Raw read/write Functions): New section.
5874         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
5875         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
5876         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
5877         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
5878         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
5879         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
5880         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
5881         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
5882         * config/frv/frv.c: Add bdesc_loads global.
5883         Add bdesc_stores global.
5884         (frv_init_builtins): Add support for __builtin_{read/write}*.
5885         (frv_volatile_memref): New.
5886         (frv_expand_load_builtin): New.
5887         (frv_expand_store_builtin): New.
5888         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
5889         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
5890         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
5891         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
5892         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
5893         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
5894         (builtin_read_<mode>): New.
5895         (builtin_write_<mode>): New.
5896         (builtin_write64): New.
5897         (optional_membar_<mode>): New.
5898
5899 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
5900
5901         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
5902         (rather than units) against HOST_BITS_PER_WIDE_INT.
5903
5904 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
5905
5906         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
5907         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
5908         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
5909         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
5910         FSF address.
5911
5912         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
5913         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
5914         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
5915         comment typos.
5916         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
5917
5918 2005-07-26  Richard Guenther  <rguenther@suse.de>
5919
5920         PR tree-optimization/22486
5921         * fold-const.c (fold_unary): Fold away useless component
5922         references of the form (T *)&T.x, if the address
5923         doesn't change.
5924
5925 2005-07-25  James E Wilson  <wilson@specifixinc.com>
5926
5927         * dwarf2out.c (add_call_src_coords_attributes): New.
5928         (gen_inlined_subroutine_die): Call it.
5929         (maybe_emit_file, init_file_table): Add comments.
5930         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
5931         maybe_emit_file.
5932         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
5933         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
5934         * tree.h (BLOCK_SOURCE_LOCATION): New.
5935         (struct tree_block): New field locus.
5936
5937 2005-07-26  Andreas Schwab  <schwab@suse.de>
5938
5939         PR rtl-optimization/23043
5940         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
5941         when allocating a struct unoccr.
5942
5943 2005-07-25  Richard Henderson  <rth@redhat.com>
5944
5945         PR 22626
5946         * tree-complex.c (gate_no_optimization): True if errors.
5947         * Makefile.in (tree-complex.o): Update dependencies.
5948
5949 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
5950
5951         * config/frv/predicates.md (integer_register_operand): Use
5952         GPR_AP_OR_PSEUDO_P.
5953
5954 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
5955
5956         PR tree-opt/22484
5957         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
5958         after fold.
5959         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
5960
5961 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
5962
5963         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
5964         types when flag_unsafe_math_optimizations is true.
5965
5966 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
5967
5968         * gcc.c (option_map): Add --sysroot.
5969         (process_command): Handle --sysroot.
5970         (display_help): Document it.
5971         * doc/cppopts.tex (-isysroot): Document.
5972         * doc/invoke.texi (--sysroot): Document.
5973         * doc/install.texi (--with-build-sysroot): Document.
5974
5975         * Makefile.in (inhibit_libc): New variable.
5976         (INHIBIT_LIBC_CFLAGS): Likewise.
5977         (LIBGCC2_CFLAGS): Include
5978         $(INHIBIT_LIBC_CFLAGS).
5979         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
5980         ($(T)crtbegin.o): Do not use @inhibit_libc@.
5981         ($(T)crtend.o): Likewise.
5982         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
5983         ($(T)crtendS.o): Likewise.
5984         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
5985         ($(T)crtendT.o): Likewise.
5986         (stmp-fixinc): Do not complain about missing headers if
5987         inhibit_libc.
5988         * configure.ac (inhibit_libc): Set it to true/false.
5989         (--with-build-sysroot): New option.  Use it to set
5990         SYSTEM_HEADER_DIR.
5991         * configure: Regenerated.
5992
5993 2005-07-25  Manfred Hollstein  <mh@suse.com>
5994
5995         * calls.c (store_one_arg): Fix unsigned comparison warning.
5996
5997 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
5998
5999         PR other/22337
6000         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
6001         (ggc_print_statistics): Initialize variable before use.
6002
6003 2005-07-25  Richard Guenther  <rguenther@suse.de>
6004
6005         * tree-dfa.c (mark_new_vars_to_rename): Protect against
6006         calling with a PHI_NODE argument.
6007
6008         * tree-flow-inline.h (overlap_subvar): Protect against
6009         possible overflow.
6010
6011 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
6012
6013         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
6014         * configure: Regenerate.
6015
6016 2005-07-25  Ira Rosen  <irar@il.ibm.com>
6017
6018         * expr.c (highest_pow2_factor): Make extern.
6019         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
6020         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
6021         record_array_differ_p, array_ptr_differ_p): Likewise.
6022         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
6023         additional cases. Call the above functions.
6024         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
6025         base_object_differ_p when there are two base objects. Otherwise, compare
6026         base address and offset. Call may_alias_p.
6027         (dump_data_reference): Use a correct field name.
6028         (analyze_array): Make static. Initialize new data-ref fields.
6029         (analyze_indirect_ref): New function.
6030         (init_data_ref): Initialize new data-ref fields.
6031         (strip_conversion): Moved from tree-vect-analyze.c.
6032         (analyze_offset_expr, get_ptr_offset, address_analysis,
6033         object_analysis): Likewise.
6034         (analyze_offset): New function.
6035         (create_data_ref): Likewise.
6036         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
6037         dimensions for ARRAY_REFs only.
6038         (build_classic_dist_vector): Make static.
6039         (access_functions_are_affine_or_constant_p): Call macro to get the
6040         address of access functions.
6041         (compute_all_dependences): Add new parameter
6042         compute_self_and_read_read_dependences. Compute self and read-read
6043         dependences if it is true.
6044         (find_data_references_in_loop): Call create_data_ref. Initialize new
6045         data-ref fields.
6046         (compute_data_dependences_for_loop): Add new parameter
6047         compute_self_and_read_read_dependences. Remove parameter nb_loops,
6048         compute nb_loops. Call compute_all_dependences,
6049         build_classic_dist_vector and build_classic_dir_vector with correct
6050         parameters.
6051         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
6052         with correct parameters. Compare dimensions for ARRAY_REFs only.
6053         (free_data_refs): Call macro to free access functions.
6054         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
6055         fields from stmt_vinfo.
6056         (struct base_object_info): New structure.
6057         (struct data_reference): Move fields to base_object_info. Add fields
6058         first_location and object_info for above structures. Move fields from
6059         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
6060         aligned_to.  Add macros to access the new fields.
6061         Update functions declarations.
6062         * tree-flow.h (is_aliased_with): Declare.
6063         * tree-loop-linear.c (linear_transform_loops): Call
6064         compute_data_dependences_for_loop with correct parameters.
6065         * tree-ssa-alias.c (is_aliased_with): New function.
6066         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
6067         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
6068         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
6069         vect_base_addr_differ_p, compute_subscript_distance and
6070         build_classic_dist_vector. Add printings. Check absolute value of
6071         distance.
6072         (vect_analyze_data_ref_dependences): Go through ddrs instead of
6073         data-refs.
6074         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
6075         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
6076         to bytes. Add printing.
6077         (vect_compute_data_refs_alignment): Go through loads and stores in one
6078         loop.
6079         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
6080         vect_analyze_data_ref_access): Likewise.
6081         (vect_analyze_pointer_ref_access): Remove.
6082         (vect_address_analysis, vect_object_analysis): Likewise.
6083         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
6084         and analyze data-refs in the loop.
6085         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
6086         fields of data-ref instead of stmt. Add init to the offset from the
6087         base.
6088         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
6089         (vect_update_init_of_dr): Likewise.
6090         (vect_update_inits_of_drs): Go through loads and stores in one loop.
6091         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
6092         removed fields.
6093         (new_loop_vec_info): Initialize new fields.
6094         (destroy_loop_vec_info): Free new fields.
6095         (vect_strip_conversion): Remove.
6096         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
6097         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
6098         datarefs. Add new field ddrs.
6099         Add macros for the new fields access.
6100         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
6101         base_aligned_p, misalignment, memtag, ptr_info and subvars.
6102         Remove their macros.
6103         * tree.h (highest_pow2_factor): Declare.
6104
6105 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
6106
6107         * calls.c (store_one_arg): Check for sibling call MEM arguments
6108         from already clobbered incoming argument area.
6109
6110 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6111
6112         * c-common.c (check_missing_format_attribute): New.
6113         * c-common.h (check_missing_format_attribute): Likewise.
6114         * c-typeck.c (convert_for_assignment): Use it.
6115
6116 2005-07-24  Andreas Schwab  <schwab@suse.de>
6117
6118         * config/m68k/m68k.md ("extendqidi2"): When source is an address
6119         register use a word move.  Correct operand of ext.w in 68000 code.
6120
6121 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
6122
6123         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
6124         variables as declarations, rather than definitions.
6125
6126 2005-07-24  Ira Rosen  <irar@il.ibm.com>
6127
6128         PR tree-optimization/22526
6129         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
6130         of the zero node.
6131
6132 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6133
6134         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
6135         that C99 reserve for future use. Use it to define clog10,
6136         clog10f and clog10l.
6137
6138 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6139
6140         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
6141         * configure.ac: Check for -Wmissing-format-attribute.
6142
6143         * configure: Regenerate.
6144
6145 2005-07-23  Richard Henderson  <rth@redhat.com>
6146
6147         PR tree-optimization/22623
6148         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
6149
6150 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
6151
6152         PR target/22577
6153         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
6154
6155 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6156
6157         * Makefile.in (C_TREE_H): Update dependencies.
6158         * c-tree.h: Include toplev.h.
6159         * diagnostic.h (diagnostic_set_info): Add format attribute.
6160         * rtl-error.c (diagnostic_for_asm): Likewise.
6161
6162 2005-07-23  Chao-ying Fu  <fu@mips.com>
6163
6164         * config/mips/mips-dsp.md: New file.
6165         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
6166         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
6167         functions.
6168         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
6169         MIPS_BUILTIN_BPOSGE32.
6170         (mips_expand_builtin_direct): Add one parameter to indicate that
6171         builtin functions need to return a value.
6172         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
6173         functions.
6174         (mips_regno_to_class): Add classes for 12 new DSP registers.
6175         (mips_subword): Change to check four HI registers.
6176         (mips_output_move): Output move to and from 6 new DSP accumulators.
6177         (override_options): Make sure -mdsp and -mips16 are not used together.
6178         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
6179         for machine modes.
6180         (mips_conditional_register_usage): Disable 6 new DSP accumulators
6181         when !TARGET_DSP.
6182         (print_operand): Add 'q' for printing DSP accumulators.
6183         (mips_cannot_change_mode_class): Check ACC_REGS.
6184         (mips_secondary_reload_class): Check ACC_REGS.
6185         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
6186         (mips_register_move_cost): Check ACC_REGS.
6187         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
6188         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
6189         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
6190         (dsp_bdesc): New array.
6191         (bdesc_arrays): Add DSP builtin function table.
6192         (mips_prepare_builtin_arg): Check predicate again after
6193         copy_to_mode_reg.
6194         (mips_expand_builtin): Add one more parameter to
6195         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
6196         MIPS_BUILTIN_BPOSGE32.
6197         (mips_init_builtins): Initialize new function types.
6198         (mips_expand_builtin_direct): Check if builtin functions need to
6199         return a value and pass operands properly.
6200         (mips_expand_builtin_bposge): New function.
6201         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
6202         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
6203         (FIRST_PSEUDO_REGISTER): Increase to 188.
6204         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6205         Update for 12 new DSP registers.
6206         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
6207         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
6208         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
6209         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
6210         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
6211         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
6212         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
6213         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
6214         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
6215         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
6216         (REGISTER_NAMES): Add names for 12 new DSP registers.
6217         * config/mips/mips.md: Include mips-dsp.md.
6218         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
6219         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
6220         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
6221         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
6222         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
6223         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
6224         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
6225         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
6226         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
6227         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
6228         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
6229         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
6230         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
6231         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
6232         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
6233         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
6234         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
6235         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
6236         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
6237         (UNSPEC_RDDSP): New constants.
6238         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
6239         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
6240         A<-d alternative.
6241         * config/mips/mips.opt (-mdsp): New option.
6242         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
6243         (reg_imm10_operand): New predicates.
6244         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
6245         * doc/invoke.texi (-mdsp): Document new option.
6246
6247 2005-07-22  DJ Delorie  <dj@redhat.com>
6248
6249         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
6250         to warning calls.
6251         * tree-inline.c (inlinable_function_p): Likewise.
6252
6253 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
6254
6255         PR debug/21828
6256         * toplev.c (check_global_declarations): Do not mark undefined
6257         variables as DECL_IGNORED_P.
6258         * varasm.c (first_global_object_name): GTY it.
6259         (weak_global_object_name): Likewise.
6260         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
6261         a string to go into {weak,first}_global_object_name.
6262
6263 2005-07-22  DJ Delorie  <dj@redhat.com>
6264
6265         * c-format.c (check_function_format): Change warning control
6266         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
6267
6268 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
6269
6270         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
6271         &PTR->FLD a dereference of PTR.
6272         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
6273         a potential dereference of PTR.
6274
6275 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
6276
6277         PR rtl-optimization/20370
6278         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
6279         call allocate_reg_info if necessary.
6280
6281         PR rtl-optimization/21848
6282         * calls.c (emit_library_call_value_1): For const functions, add
6283         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
6284
6285         PR rtl-optimization/22445
6286         * cselib.c (target.h): Include.
6287         (rtx_equal_for_cselib_p): Allow commutative matches.
6288         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
6289         Remove MODE parameter.  Changed all callers.
6290
6291         PR rtl-optimization/22258
6292         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
6293         New functions.
6294         (try_combine): Use likely_spilled_retval_p.
6295
6296 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
6297
6298         * config.gcc: Add crx-elf support.
6299
6300         * doc/contrib.texi: Mention crx.
6301         * doc/extend.texi: Document crx extensions.
6302         * doc/install.texi: Document crx install.
6303         * doc/invoke.texi: Document crx options.
6304         * doc/md.texi: Document crx constraints.
6305
6306         * config/crx/crx-protos.h: New file.
6307         * config/crx/crx.c: New file.
6308         * config/crx/crx.h: New file.
6309         * config/crx/crx.md: New file.
6310         * config/crx/crx.opt: New file.
6311         * config/crx/t-crx: New file.
6312
6313 2005-07-22  Manfred Hollstein  <mh@suse.com>
6314
6315         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
6316         warnings.
6317         (int_add_graph_edge): Likewise.
6318         (collapse_nodes): Likewise.
6319         (process_unification_queue): Likewise.
6320
6321 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6322             Laurent GUERBY  <laurent@guerby.net>
6323
6324         PR tree-optimization/22336
6325         * function.c (record_block_change): Check for
6326         cfun->ib_boundaries_block.
6327
6328 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
6329
6330         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
6331         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
6332
6333 2005-07-21  DJ Delorie  <dj@redhat.com>
6334
6335         * toplev.c (warn_deprecated_use): Add warning control to warning
6336         call.
6337         * c-typeck.c (parser_build_binary_op): Likewise.
6338         (c_finish_if_stmt): Likewise.
6339         * c-common.c (check_function_sentinel): Likewise.
6340         (check_nonnull_arg): Likewise.
6341
6342 2005-07-21  Richard Henderson  <rth@redhat.com>
6343
6344         PR tree-opt/22504
6345         * tree-complex.c (complex_ssa_name_components): New.
6346         (cvc_lookup): Allow entry not found.
6347         (create_components): Remove.
6348         (create_one_component_var, get_component_var): New.
6349         (get_component_ssa_name, set_component_ssa_name): New.
6350         (extract_component): Use get_component_ssa_name.
6351         (update_complex_components): Use set_component_ssa_name.
6352         (update_complex_components_on_edge): Likewise.
6353         (update_phi_components): Create new PHI nodes directly, instead
6354         of adding insns to edges.
6355         (tree_lower_complex): Allocate and free complex_variable_components
6356         and complex_ssa_name_components here.
6357
6358 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
6359
6360         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
6361         revert to returning false.
6362
6363 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
6364
6365         PR target/21149
6366         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
6367
6368 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
6369
6370         PR target/22576
6371         * config/i386/i386.md (cmpxf): Change operand constraints
6372         to "nonmemory_operand".
6373
6374 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
6375
6376         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
6377
6378 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
6379
6380         PR middle-end/21180
6381         * fold-const.c (fold_build1): Add checksum for the operands.
6382         (fold_build2): Likewise.
6383         (fold_build3): Likewise.
6384
6385 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
6386
6387         PR middle-end/19055
6388         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
6389
6390 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
6391
6392         * common.opt (-fforward-propagate): Committed by mistake,
6393         removed.
6394
6395 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6396
6397         * reg-stack.c: Fix comment typo(s).
6398         * tree-ssa-operands.c: Likewise.
6399         * tree-vectorizer: Likewise.
6400
6401 2005-07-21  Nick Clifton  <nickc@redhat.com>
6402
6403         * config/sh/symbian.c: Replace C++ style line comments with C
6404         style line comments.
6405         (symbian_add_attribute): Do not use a ? operator on the LHS of
6406         an assignment.
6407         (sh_symbian_handle_dll_attribute): Change the type of the
6408         method vector to "VEC(tree,gc)*" and use vector accessor
6409         macros to walk over the elements.
6410         (symbian_export_vtable_and_rtti_p): Likewise.
6411         (symbian_class_needs_attribute_p): Likewise.
6412
6413 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
6414
6415         PR target/22085
6416         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
6417         initialize targetm.resolve_overloaded_builtin here.
6418         (altivec_expand_overloaded_builtin): Make it non-static.
6419         * config/rs6000/rs6000-protos.h
6420         (altivec_expand_overloaded_builtin): New prototype.
6421         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
6422         targetm.resolve_overloaded_builtin here.
6423         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
6424
6425 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
6426             Zdenek Dvorak  <dvorakz@suse.cz>
6427
6428         PR tree-optimization/19210
6429         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
6430         New.
6431         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
6432         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
6433         rely on unproven assumptions.
6434         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
6435         * tree-flow.h (number_of_iterations_exit): Add final parameter.
6436         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
6437         to number_of_iterations_exit.
6438         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
6439         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
6440         * tree-ssa-loop-niter.c (find_loop_niter,
6441         estimate_numbers_of_iterations_loop): Likewise.
6442         (number_of_iterations_exit): Honor the new options.
6443         * doc/invoke.texi (Wunsafe-loop-optimizations,
6444         funsafe-loop-optimizations): Document them.
6445
6446 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
6447
6448         PR rtl-optimization/22167
6449         * gcse.c (hoist_code): Fix hoist_exprs[] check.
6450
6451 2005-07-20  Adam Nemet  <anemet@lnxw.com>
6452
6453         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
6454         __do_global_dtors_aux longcall.
6455
6456 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
6457
6458         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
6459         (old_special_pred_table): Don't reference
6460         SPECIAL_MODE_PREDICATES.
6461         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
6462         * config/arc/arc.h: Don't mention PREDICATE_CODES.
6463         * config/sh/predicates.h: Don't mention
6464         SPECIAL_MODE_PREDICATES.
6465         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
6466         Remove.
6467
6468 2005-07-20  DJ Delorie  <dj@redhat.com>
6469
6470         * config.gcc: Add m32c-elf support.
6471
6472         * doc/contrib.texi: Mention m32c.
6473         * doc/extend.texi: Document m32c extensions.
6474         * doc/install.texi: Mention m32c.
6475         * doc/invoke.texi: Document m32c options.
6476         * doc/md.texi: Document m32c constraints.
6477
6478         * config/m32c/addsub.md: New file.
6479         * config/m32c/bitops.md: New file.
6480         * config/m32c/cond.md: New file.
6481         * config/m32c/jump.md: New file.
6482         * config/m32c/m32c-lib1.S: New file.
6483         * config/m32c/m32c-lib2.c: New file.
6484         * config/m32c/m32c-modes.def: New file.
6485         * config/m32c/m32c-pragma.c: New file.
6486         * config/m32c/m32c-protos.h: New file.
6487         * config/m32c/m32c.abi: New file.
6488         * config/m32c/m32c.c: New file.
6489         * config/m32c/m32c.h: New file.
6490         * config/m32c/m32c.md: New file.
6491         * config/m32c/m32c.opt: New file.
6492         * config/m32c/minmax.md: New file.
6493         * config/m32c/mov.md: New file.
6494         * config/m32c/muldiv.md: New file.
6495         * config/m32c/predicates.md: New file.
6496         * config/m32c/prologue.md: New file.
6497         * config/m32c/shift.md: New file.
6498         * config/m32c/t-m32c: New file.
6499
6500 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6501
6502         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
6503         (stack_protect_set, stack_protect_test): New expanders.
6504         (stack_protect_set_si, stack_protect_set_si_media,
6505         stack_protect_set_di_media, stack_protect_test_si,
6506         stack_protect_test_si_media, stack_protect_test_di_media):
6507         New insns.
6508
6509 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
6510
6511         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
6512
6513 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
6514
6515         * tree.h (tree_expr_nonzero_p): Export.
6516         * fold-const.c (tree_expr_nonzero_p): Likewise.
6517         Return true for CALL_EXPRs that are alloca calls.
6518         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
6519         against zero.
6520         * tree-flow.h (expr_computes_nonzero): Remove.
6521         * tree-vrp.c (expr_computes_nonzero): Remove.
6522         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
6523         (extract_range_from_unary_expr): Likewise.
6524         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
6525         tree_expr_nonzero_p.
6526
6527 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
6528
6529         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
6530         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
6531         extra arg "picreg" and use it instead of pic_offset_table_rtx.
6532         All callers changed.
6533         (frame_related_constant_load): New arg "related" which controls
6534         setting of RTX_FRAME_RELATED_P.  All callers changed.
6535         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
6536         (bfin_expand_prologue): Add stack limit checking.
6537         * config/bfin/bfin.md (trapifcc): New pattern.
6538
6539         * config/bfin/bfin.c: Include "langhooks.h".
6540         (def_builtin): Go through lang_hooks to call builtin_function.
6541
6542         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
6543         * config/bfin/predicates.md (symbol_ref_operand): New.
6544         (call_insn_operand): Delete.  All callers changed to use
6545         register_no_elim_operand.
6546         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
6547         call_cookie field.
6548         (function_arg): Use it to generate the call's operand 2.
6549         (bfin_longcall_p): New function.
6550         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
6551         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
6552         determine if the address needs to be in a REG.
6553         (bfin_handle_longcall_attribute): New function.
6554         (bfin_attribute_table): Add "longcall" and "shortcall".
6555         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
6556         (CUMULATIVE_ARGS): New member call_cookie.
6557         (PREDICATE_CODES): Add symbol_ref_operand.
6558         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
6559         extra USE to the pattern.
6560         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
6561         New patterns, split off call_insn, sibcall_insn, call_value_insn and
6562         sibcall_value_insn; now the new patterns handle direct calls and the
6563         old ones indirect calls.
6564         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
6565
6566 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
6567
6568         * doc/trouble.texi: Update section on handling of empty loops.
6569
6570 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
6571
6572         * config.gcc: Remove support for sparc-*-openbsd*,
6573         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
6574         ns32k-*-netbsd*.
6575         * config.host: Remove support for i860-*-sysv4* as a host.
6576         * config/i860/*, config/ip2k/*, config/ns32k/*,
6577         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
6578         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
6579         mention obsolete ports.
6580
6581 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6582
6583         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
6584         soft frame pointer.
6585         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
6586         of frame_pointer_rtx.
6587         (sh_expand_epilogue): Likewise.
6588         (sh_set_return_address): Likewise.
6589         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
6590         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
6591         offsets from FRAME_POINTER_REGNUM.
6592         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
6593         (sh_register_names): Add initializer for sfp.
6594         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
6595         (VALID_REGISTER_P): Likewise.
6596         (FIRST_PSEUDO_REGISTER): Update.
6597         (DWARF_FRAME_REGISTERS): Define.
6598         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
6599         (HARD_FRAME_POINTER_REGNUM): Define.
6600         (FRAME_POINTER_REGNUM): Redefine.
6601         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
6602         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
6603         from FRAME_POINTER_REGNUM.
6604         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
6605         FRAME_POINTER_REGNUM.
6606         (REG_CLASS_CONTENTS): Add sfp.
6607         (REG_ALLOC_ORDER): Likewise.
6608         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
6609         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
6610         of frame_pointer_rtx.
6611         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
6612
6613 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
6614
6615         * fold-const.c (tree_expr_nonnegative_p): Only return true for
6616         ABS_EXPR when flag_wrapv is false because of INT_MIN.
6617         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
6618         of an ABS_EXPR.
6619         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
6620         ABS_EXPR<x>.
6621
6622 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
6623
6624         Make CONSTRUCTOR use VEC to store initializers.
6625         * c-common.c (complete_array_type): Update to cope with VEC in
6626         CONSTRUCTOR_ELTS.
6627         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
6628         (pp_c_constructor_elts): New function.
6629         * c-pretty-print.h (pp_c_constructor_elts): Declare.
6630         * c-typeck.c (build_function_call, build_c_cast, digest_init,
6631         struct constructor_stack, struct initializer_stack,
6632         constructor_elements, push_init_level, pop_init_level,
6633         add_pending_init, find_init_member, output_init_element): Update to
6634         cope with VEC in CONSTRUCTOR_ELTS.
6635         * coverage.c (build_fn_info_value, build_ctr_info_value,
6636         build_gcov_info): Likewise.
6637         * expr.c (categorize_ctor_elements_1, store_constructor,
6638         expand_expr_real_1): Likewise.
6639         * fold-const.c (fold_ternary): Likewise.
6640         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
6641         gimplify_init_constructor, gimplify_expr): Likewise.
6642         * tree-dump.c (dequeue_and_dump): Likewise.
6643         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
6644         node.
6645         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
6646         CONSTRUCTOR_ELTS.
6647         * tree-sra.c (generate_element_init_1): Likewise.
6648         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
6649         * tree-ssa-operands.c (get_expr_operands): Likewise.
6650         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
6651         * tree-vect-transform.c (vect_get_vec_def_for_operand):
6652         (get_initial_def_for_reduction): Likewise.
6653         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
6654         value handle in annotations.
6655         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
6656         tree_node_structure): Add support for constr_kind.
6657         (build_vector_from_ctor, build_constructor_single,
6658         build_constructor_from_list): New functions.
6659         (build_constructor): Update to take a VEC instead of a TREE_LIST.
6660         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
6661         Update to cope with VEC in CONSTRUCTOR_ELTS.
6662         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
6663         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
6664         CONSTRUCTOR_APPEND_ELT): New macros.
6665         (struct constructor_elt, struct tree_constructor): New data types.
6666         (union tree_node): Add tree_constructor field.
6667         * treestruct.def: Define TS_CONSTRUCTOR.
6668         * varasm.c (const_hash_1, compare_constant, copy_constant,
6669         compute_reloc_for_constant, output_addressed_constants,
6670         initializer_constant_valid_p, output_constant,
6671         array_size_for_constructor, output_constructor): Update to cope with
6672         VEC in CONSTRUCTOR_ELTS.
6673         * vec.h (VEC_empty, VEC_copy): New macros.
6674
6675 2005-07-19  Devang Patel  <dpatel@apple.com>
6676
6677         * dbxout.c (dbxout_type): Check Objective-C++ lang.
6678
6679 2005-07-19  Richard Henderson  <rth@redhat.com>
6680
6681         PR tree-opt/22278
6682         * gimplify.c (gimplify_expr): Use main variant type for the temp
6683         destination for a discarded volatile read.
6684         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
6685         casts between non-void types that change volatility.
6686
6687 2005-07-15  DJ Delorie  <dj@redhat.com>
6688
6689         * toplev.h: Add comment about the first parameter for warning().
6690         * errors.h: Likewise.
6691
6692         * c.opt (Wpragmas): New.
6693         * doc/invoke.texi: Document it.
6694
6695         * function.c (do_warn_unused_parameter): Add warning control to
6696         warning call.
6697         * c-decl.c (warn_if_shadowing): Likewise.
6698         * c-lex.c (cb_def_pragma): Likewise.
6699         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
6700         (pop_alignment): Likewise.
6701         (handle_pragma_pack): Likewise.
6702         (apply_pragma_weak): Likewise.
6703         (handle_pragma_weak): Likewise.
6704         (handle_pragma_redefine_extname): Likewise.
6705         (add_to_renaming_pragma_list): Likewise.
6706         (handle_pragma_extern_prefix): Likewise.
6707         (maybe_apply_renaming_pragma): Likewise.
6708         (handle_pragma_visibility): Likewise.
6709
6710         * config/c4x/c4x-c.c (BAD): Likewise.
6711         (c4x_parse_pragma): Likewise.
6712         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
6713         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
6714         (rs6000_pragma_longcall): Likewise.
6715         * config/v850/v850-c.c (pop_data_area): Likewise.
6716         (ghs_pragma_section): Likewise.
6717         (ghs_pragma_section): Likewise.
6718         (ghs_pragma_interrupt): Likewise.
6719         (ghs_pragma_starttda): Likewise.
6720         (ghs_pragma_startsda): Likewise.
6721         (ghs_pragma_startzda): Likewise.
6722         (ghs_pragma_endtda): Likewise.
6723         (ghs_pragma_endsda): Likewise.
6724         (ghs_pragma_endzda): Likewise.
6725
6726 2005-07-19  Danny Berlin <dberlin@dberlin.org>
6727             Kenneth Zadeck <zadeck@naturalbridge.com>
6728
6729         * Makefile.in: Removed tree-promote-statics.c
6730         * tree-promote-statics.c: Removed.
6731         * common.opt: Removed flag-promote-statics.
6732         * opts.c: Ditto.
6733         * passes.c: Removed tree-promote-statics pass.
6734         * tree-pass.h: Ditto.
6735         * timevar.def: Removed TV_PROMOTE_STATICS.
6736
6737
6738 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
6739
6740         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
6741         and *-*-freebsd9.
6742         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
6743
6744 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6745
6746         PR c/22476
6747         * c-common.c (check_function_arguments): Call
6748         'check_function_format' if either -Wformat or
6749         -Wmissing-format-attribute are specified.
6750         * c-format.c (check_function_format): Check -Wformat before
6751         calling 'check_format_info'.
6752         * c-opts.c (c_common_post_options): Don't warn for
6753         -Wmissing-format-attribute without -Wformat.
6754         * c-typeck.c (convert_for_assignment): Detect additional cases for
6755         -Wmissing-format-attribute.
6756         * doc/invoke.texi (-Wmissing-format-attribute): Document new
6757         behavior.
6758
6759 2005-07-19  Richard Guenther  <rguenther@suse.de>
6760
6761         * config/i386/i386.md (lrint<mode>2): Use temporary
6762         instead of clobbering non-existent memory.
6763
6764 2005-07-19  Nick Clifton  <nickc@redhat.com>
6765
6766         * config/avr/avr.c (legitimate_address_p): Fix debugging print
6767         statement to avoid displaying ASCII control characters.
6768
6769 2005-07-19  Ben Elliston  <bje@au.ibm.com>
6770
6771         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
6772         * cfganal.c (find_edge_index): Ditto.
6773         * combine.c (combine_instructions): Ditto.
6774         * ddg.c (create_scc): Ditto.
6775         (find_successors): Ditto.
6776         (find_predecessors): Ditto.
6777         (find_nodes_on_paths): Ditto.
6778         (longest_simple_path): Ditto.
6779         * flow.c (update_life_info): Ditto.
6780         (count_or_remove_death_notes): Ditto.
6781         (clear_log_links): Ditto.
6782         * modulo-sched.c (generate_reg_moves): Ditto.
6783         (find_max_asap): Ditto.
6784         (find_max_hv_min_mob): Ditto.
6785         (find_max_dv_min_mob): Ditto.
6786         * sbitmap.c (sbitmap_first_set_bit): Ditto.
6787         * sched-rgn.c (extract_edgelst): Ditto.
6788         * tree-into-ssa.c (prepare_names_to_update): Ditto.
6789         (dump_update_ssa): Ditto.
6790         (ssa_names_to_replace) Ditto.
6791         (switch_virtuals_to_full_rewrite): Ditto.
6792         (update_ssa): Ditto.
6793         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
6794
6795 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
6796
6797         Fix PR tree-optimization/22483
6798
6799         * tree-complex.c (create_components): Use
6800         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
6801         * tree-flow-inline.h (fill_referenced_var_vec): New function.
6802         * tree-flow.h (safe_referenced_var_iterator): New structure.
6803         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
6804         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
6805         safe_referenced_var iterator.
6806         (add_type_alias): Ditto.
6807
6808 2005-07-19  Steven Bosscher  <stevenb@suse.de>
6809
6810         * loop-init.c (rest_of_handle_loop2): Remove.
6811         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
6812         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
6813         (pass_rtl_loop_init, pass_rtl_loop_done,
6814         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
6815         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
6816         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
6817         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
6818         pass_tree_loop_done, and pass_tree_unswitch.
6819         (gate_loop): Rename to gate_tree_loop.
6820         * passes.c (init_optimization_passes): Update for renamed tree
6821         loop passes.  Add the new loop2 passes as subpasses of loop2.
6822         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
6823         Update for the renamed tree loop passes.
6824
6825 2005-07-18  Ian Lance Taylor  <ian@airs.com>
6826
6827         PR middle-end/22057
6828         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
6829         blocks when optimizing.
6830
6831 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
6832
6833         * common.opt (frename-registers): Initialize to 2.
6834         (fweb): Ditto.
6835         (fgcse-after-reload): Ditto.
6836         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
6837         (process_options): Only change flag_web, flag_rename_registers,
6838         and flag_rerun_cse_after_loop if not explicitly set by user.
6839
6840 2005-07-18  Jan Beulich  <jbeulich@novell.com>
6841
6842         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
6843         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
6844         in 64-bit mode the same as DImode in 32-bit mode.
6845         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
6846         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
6847         mode. Add new mode parameter.
6848         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
6849         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
6850         x86_64_shift_adj): New expanders.
6851         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
6852         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
6853         insns.
6854         Respective new splitters. Use renamed shift splitter helpers in 32-bit
6855         DImode shift splitters.
6856         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
6857         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
6858         mode parameter.
6859
6860 2005-07-18  Jan Beulich  <jbeulich@novell.com>
6861
6862         * i386.md (movdi_extzv_1): New.
6863         (zero_extendhidi2): Combine alternatives and never force use of
6864         REX64 prefix.
6865         (zero_extendqidi2): Likewise. Don't restrict input selection.
6866
6867 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
6868
6869         Fix PR tree-optimization/22531
6870         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
6871          moment.
6872
6873 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
6874
6875         * tree-promote-statics.c (pass_promote_statics): Change dump file
6876          name.
6877
6878 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
6879
6880         * tree-optimize.c (init_tree_optimization_passes): Add
6881         pass_eliminate_useless_stores pass.
6882         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
6883         * tree-ssa-pre.c (is_copy_stmt): New function.
6884         (follow_copies_till_vuse): Ditto.
6885         (do_eustores): Ditto.
6886         (gate_eustores): Ditto.
6887
6888 2005-07-16  Richard Henderson  <rth@redhat.com>
6889
6890         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
6891
6892 2005-07-16 Danny Berlin <dberlin@dberlin.org>
6893            Kenneth Zadeck <zadeck@naturalbridge.com>
6894
6895         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
6896         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
6897         ipa-type-escape.h, tree-promote-statics.c
6898         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
6899         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
6900         tree-promote-statics.c: new files.
6901         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
6902         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
6903         int nonlocal_set_p, mark_constant_function): Deleted.
6904         (rest_of_handle_cfg): Removed call to mark_constant_function.
6905         (nonoverlapping_component_refs_p): Added calls to support
6906         type based aliasing.
6907         * tree-ssa-alias.c (may_alias_p,
6908         compute_flow_insensitive_aliasing): Ditto.
6909         * calls.c (flags_from_decl_or_type): Removed reference to
6910         cgraph_rtl_info.
6911         * c-typeck.c (convert_arguments): Make builtins tolerant of having
6912         too many arguments.  This is necessary for Spec 2000.
6913         * cgraph.h (const_function, pure_function): Removed.
6914         * common.opt: Added "fipa-pure-const", "fipa-reference",
6915         "fipa-type-escape", and "ftree-promote-static".
6916         * opts.c: Ditto.
6917         * passes.c: Added ipa and tree-promote-statics passes.
6918         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
6919         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
6920         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
6921         * tree-flow.h: Added exposed sra calls and addition of
6922         reference_vars_info field for FUNCTION_DECLS.
6923         * tree-pass.h: Added passes.
6924         * tree-sra.c: (sra_init_cache): New function.
6925         (sra_insert_before, sra_insert_after) Made public.
6926         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
6927         and made public.
6928         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
6929         aliasing. (may_alias_p): Added code to use type escape analysis to
6930         improve alias sets.
6931         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
6932         code to prune clobbers of static variables based on information
6933         produced in ipa-reference pass.  Changed call clobbering so that
6934         statics are not marked as clobbered if the call does not clobber
6935         them.
6936
6937 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
6938
6939         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
6940         too.
6941
6942 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6943
6944         * doc/install.texi (*-*-solaris2*): Document recommended version
6945         of GNU binutils and mention GNU linker problem on Solaris 10.
6946
6947 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
6948
6949         PR c/22421
6950         * c-decl.c (c_build_bitfield_integer_type): New function.
6951         (finish_struct): Call it.
6952         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
6953
6954 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6955
6956         * c-typeck.c (digest_init): Call 'convert_for_assignment'
6957         before returning.
6958
6959 2005-07-16  Jan Hubicka  <jh@suse.cz>
6960
6961         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
6962         (scale_bbs_frequencies_int): Watch roundoff errors.
6963         * predict.c (return_prediction): Initialize return_stmt.
6964
6965 2005-07-16  Jan Hubicka  <jh@suse.cz>
6966
6967         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
6968         after RTL profiling.
6969
6970 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
6971
6972         PR middle-end/22398
6973         * fold-const.c (build_range_check): Convert high/low to etype
6974         if we are only comparing against exp.
6975
6976 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
6977
6978         Fix PR tree-optimization/22376
6979         * tree-ssa-structalias.c (build_constraint_graph): We really meant
6980         special var here.
6981         (need_to_solve): New function.
6982         (compute_points_to_sets): Use it.
6983
6984 2005-07-15  Jan Hubicka  <jh@suse.cz>
6985
6986         * cfg.c (update_bb_profile_for_threading): More diagnostic.
6987         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
6988
6989 2005-07-15  Richard Guenther  <rguenther@suse.de>
6990
6991         * c-common.c (handle_flatten_attribute): New function.
6992         Add flatten function attribute.
6993         * doc/extend.texi: Document flatten function attribute.
6994         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
6995         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
6996         New functions.
6997         (cgraph_decide_inlining): Handle functions with flatten
6998         attribute.
6999
7000 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
7001
7002         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
7003         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
7004         UNSPEC_XCHG, UNSPEC_AND): New.
7005         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
7006         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
7007         * config/rs6000/sync.md (FETCHOP): New code macro.
7008         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
7009         New code attrs.
7010         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
7011         (sync_compare_and_swap<mode>): Same.
7012         (sync_lock_test_and_set<mode>): Same.
7013         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
7014         for QImode and HImode, and not PPC405.
7015         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
7016         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
7017         (sync_<fetchop>{si,di}_internal): New.
7018         (sync_nand{si,di}_internal): New.
7019         (sync_old_<fetchop>{si,di}_internal): New.
7020         (sync_old_nand{si,di}_internal): New
7021         (sync_new_<fetchop>{si,di}_internal): New.
7022         (sync_new_nand{si,di}_internal): New.
7023         (atomic_and{si,di}): New.
7024         (sync_new_nand{si,di}_internal): New.
7025         (atomic_and{si,di}): New.
7026         (sync_add<mode>_internal): Delete.
7027         (sync_addshort_internal): Use unspec instead of unspec_volatile.
7028         (sync_sub<mode>_internal): Delte.
7029         (sync_subshort_internal): New.
7030         (sync_andsi_internal): Use unspec instead of unspec_volatile.
7031         (sync_anddi_internal): Delete.
7032         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
7033         (sync_booldi_internal): Delete.
7034         (sync_boolc<mode>_internal): Delete.
7035         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
7036         (sync_boolc<mode>_internal2): Delete.
7037         (sync_boolcc<mode>_internal): Delete.
7038         (isync, lwsync): Use unspec instead of unspec_volatile.
7039         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
7040         Revert UNSPEC_VOLATILE.
7041         (rs6000_split_atomic_op): New.
7042         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
7043
7044 2005-07-14  Eric Christopher  <echristo@redhat.com>
7045
7046         * config/mips/mips.c (mips_canonicalize_comparison): Cast
7047         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
7048
7049 2005-07-14  Eric Christopher  <echristo@redhat.com>
7050
7051         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
7052
7053 2005-07-14  Steven Bosscher  <stevenb@suse.de>
7054
7055         PR tree-optimization/22230
7056         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
7057         the computation of the four cross productions for "range op range".
7058
7059 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
7060             Ulrich Weigand  <uweigand@de.ibm.com>
7061
7062         PR target/20126
7063         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
7064         in some insn.
7065
7066 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
7067
7068         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
7069
7070 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
7071
7072         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
7073
7074 2005-07-14  Richard Guenther  <rguenther@suse.de>
7075
7076         PR middle-end/22347
7077         * config/i386/i386-protos.h (ix86_function_value): Change
7078         prototype to match new target hook.
7079         * config/i386/i386.c (ix86_value_regno): Change prototype
7080         to take extra type argument.
7081         (TARGET_FUNCTION_VALUE): Define.
7082         (ix86_function_ok_for_sibcall): Pass extra argument to
7083         ix86_value_regno, check return slot rtx for exact match.
7084         (ix86_function_value): Take extra parameter.  Dispatch to
7085         ix86_value_regno with fndecl/fntype as provided.
7086         (ix86_value_regno): Handle extra type argument.
7087         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
7088
7089         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
7090         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
7091         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
7092         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
7093         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
7094
7095 2005-07-14  Richard Guenther  <rguenther@suse.de>
7096
7097         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
7098         * calls.c (expand_call): Pass fntype to hard_function_value.
7099         (emit_library_call_value_1): Likewise.
7100         * explow.c: Include target.h.
7101         (hard_function_value): Take extra argument, the fntype.
7102         Use new target hook for function_value.
7103         * expr.h (hard_function_value): Change prototype.
7104         * function.c (aggregate_value_p): Pass 0 as fntype to
7105         hard_function_value.
7106         (assign_parms): Use new target hook for function_value.
7107         Pass 0 as fntype to hard_function_value.
7108         (expand_function_end): Likewise.
7109         * reg-stack.c: Include target.h.
7110         (stack_result): Use new target hook for function_value.
7111         * target-def.h: New target hook function_value.
7112         * target.h: Likewise.
7113         * targhooks.c (default_function_value): New function.
7114         * targhooks.h (default_function_value): Declare.
7115
7116 2005-07-13  Ian Lance Taylor  <ian@airs.com>
7117
7118         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
7119
7120 2005-07-14  Jan Hubicka  <jh@suse.cz>
7121
7122         * tree-dfa.c (dump_variable): Use default_def function.
7123         * tree-ssa-alias.c (dump_points_to_info): Likewise.
7124         * tree-ssa.c (verify_use): Likewise.
7125         * tree-ssanames.c (release_ssa_name): Likewise.
7126         * tree-tailcall.c (eliminate_tail_call): Likewise.
7127         (tree_optimize_tail_calls_1): Likewise.
7128         * tree-vrp.c (get_value_range): Likewise.
7129
7130 2005-07-14  Ben Elliston  <bje@au.ibm.com>
7131
7132         * gcc.c (main): Compare language[0] with '*' when iterating over
7133         the infiles.
7134
7135 2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
7136
7137         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
7138         "s390_emit_compare".  Add handling of CCZ1mode.
7139         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
7140         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
7141         checking.
7142         (s390_branch_condition_mask): Add CCZ1mode handling.
7143         * config/s390/s390.md: ("seq", "*seq"): New pattern.
7144         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
7145         Use CCZ1mode instead of CCZmode.
7146         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
7147
7148 2006-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
7149
7150         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
7151         pattern.
7152         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
7153
7154 2005-07-13  Eric Christopher  <echristo@redhat.com>
7155
7156         * config/mips/mips.c (mips_canonicalize_comparison): New.
7157         (mips_emit_int_relational): Use.
7158
7159 2005-07-13  Eric Christopher  <echristo@redhat.com>
7160
7161         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
7162         static extra parts.
7163         * config/s390/s390.md: Include tpf.md. Move tpf specific
7164         patterns...
7165         * config/s390/tpf.md: To here.
7166         * config/s390/s390.opt: Move tpf specific options...
7167         * config/s390/tpf.opt: to here. Add mmain option.
7168         * config/s390/tpf-unwind.h: Remove unnecessary defines.
7169         * config/s390/tpf.h: Rewrite.
7170
7171 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
7172
7173         * doc/tm.texi: Remove @xref{Cross-profiling}.
7174
7175 2005-07-13  Jeff Law  <law@redhat.com>
7176
7177         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
7178         expressions, test their _DECL operands for pointer equality rather
7179         than using operand_equal_p.
7180
7181 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
7182
7183         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
7184         (TARGET_POSIX_IO): This.
7185         * config/darwin.h: Likewise.
7186         * config/freebsd.h: Likewise.
7187         * config/linux.h: Likewise.
7188         * config/lynx.h: Likewise.
7189         * config/netbsd.h: Likewise.
7190         * config/rs6000/linux64.h: Likewise.
7191         * config/rs6000/linux.h: Likewise.
7192         * config/s390/tpf.h: Likewise.
7193         * config/sh/embed-elf.h: Likewise.
7194         * config/sparc/linux64.h: Likewise.
7195         * config/sparc/linux.h: Likewise.
7196         * config/svr4.h: Likewise.
7197         * gcov-io.h: Likewise.
7198
7199         * doc/tm.texi: Updated.
7200
7201         * libgcov.c (create_file_directory): Defined only if
7202         TARGET_POSIX_IO is defined.
7203         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
7204         is defined.
7205
7206 2005-07-13  Jan Hubicka  <jh@suse.cz>
7207
7208         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
7209
7210 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
7211
7212         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
7213         structure as argument.
7214
7215 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
7216
7217         PR tree-optimization/21921
7218         * tree-iterator.c (tsi_link_before): Support the case when
7219         tsi_end_p (tsi) == true.
7220
7221 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
7222
7223         PR tree-optimization/22442
7224         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
7225         correctly.
7226
7227 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
7228
7229         PR rtl-optimization/20376
7230         * toplev.c (process_options): Enable -fweb and -frename-registers when
7231         unrolling.
7232         * doc/invoke.texi: Update the information about when -fweb and
7233         -frename-registers are enabled.
7234
7235 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
7236
7237         PR tree-opt/21840
7238         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
7239         if *rhs_p is not a SSA_NAME.
7240
7241 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
7242
7243         Fix PR tree-optimization/22422
7244         * tree-ssa-structalias.c (struct variable_info): Add flag for
7245         special vars.
7246         (get_varinfo): Now a static function.
7247         (new_varinfo): init has_union and is_special_var to false.
7248         (solution_set_add): Check has_union.
7249         (do_da_constraint): Move temporary variable so it gets reset
7250         properly.
7251         Also check for special variable.
7252         (do_ds_constraint): Ditto.
7253         (do_sd_constraint): Ditto.
7254         (do_structure_copy): Check for special variable.
7255         (find_func_aliases): Ditto.
7256         (init_base_vars): Set special vars properly.
7257
7258 2005-07-13  Jan Hubicka  <jh@suse.cz>
7259
7260         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
7261         do unit-at-a-time.
7262
7263         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
7264         (get_expr_operands): Fix thinko wrt flags and subvars.
7265
7266         PR tree-optimize/22379
7267         * tree-inline.c (expand_call_inline): Do not output sorry in early
7268         inlining.
7269
7270 2005-07-12  Dale Johannesen  <dalej@apple.com>
7271
7272         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
7273
7274 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
7275
7276         PR bootstrap/21704
7277         * host-linux.h: Include limits.h.
7278
7279 2005-07-12  Dale Johannesen  <dalej@apple.com>
7280
7281         * expr.c (compress_float_constant):  Add cost check.
7282         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
7283
7284 2005-07-12  Dale Johannesen  <dalej@apple.com>
7285
7286         * gcc.target/i386/compress-float-sse.c:  New.
7287         * gcc.target/i386/compress-float-sse-pic.c:  New.
7288         * gcc.target/i386/compress-float-387.c:  New.
7289         * gcc.target/i386/compress-float-387-pic.c:  New.
7290         * gcc.dg/compress-float-ppc.c:  New.
7291         * gcc.dg/compress-float-ppc-pic.c:  New.
7292
7293 2005-07-12  Eric Christopher  <echristo@redhat.com>
7294
7295         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
7296         static extra parts.
7297         * config/s390/s390.md: Include tpf.md. Move tpf specific
7298         patterns...
7299         * config/s390/tpf.md: To here.
7300         * config/s390/s390.opt: Move tpf specific options...
7301         * config/s390/tpf.opt: to here. Add mmain option.
7302         * config/s390/tpf-unwind.h: Remove unnecessary defines.
7303         * config/s390/tpf.h: Rewrite.
7304
7305 2005-07-12  Eric Christopher  <echristo@redhat.com>
7306
7307         * gcc.c (struct infile): Update comment for language.
7308         (main): Rewrite input file resetting code.
7309
7310 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
7311
7312         PR tree-opt/22335
7313         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
7314         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
7315         (lookup_avail_expr): Use constant_boolean_node instead
7316         of boolean_false_node/boolean_true_node.
7317
7318 2005-07-12  Ben Elliston  <bje@au.ibm.com>
7319
7320         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
7321         and use it when printing num_edges.
7322
7323 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
7324
7325         * doc/extend.texi (Blackfin Built-in Functions): New section.
7326         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
7327         @opindex.
7328
7329 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
7330
7331         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
7332         s/cmpstrsi/cmpstrnsi
7333         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
7334         'cmpstrnsi'.
7335         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
7336         (init_optabs): Initialize cmpstrn_optab.
7337         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
7338         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
7339         * expr.c: (enum insn_code cmpstrn_optab): Declare.
7340         * config/i386/i386.md: s/cmpstr/cmpstrn
7341         * config/c4x/c4x.md: s/cmpstr/cmpstrn
7342         * doc/md.texi: Update documentation.
7343
7344 2005-07-11  Richard Henderson  <rth@redhat.com>
7345
7346         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
7347         build_va_arg_indirect_ref.
7348         (alpha_gimplify_va_arg): Likewise.
7349         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
7350         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
7351         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
7352         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7353         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
7354         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
7355         Likewise.
7356         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
7357
7358 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
7359
7360         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
7361         * passes.c (init_optimization_passes): Add pass_empty_loop.
7362         * tree-pass.h (pass_empty_loop): Declare.
7363         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
7364         try_remove_empty_loop, remove_empty_loops): New functions.
7365         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
7366         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
7367
7368 2005-07-12  Peter Barada  <peter@the-baradas.com>
7369
7370         PR middle-end/16719
7371         PR middle-end/18421
7372         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
7373         in address registers.
7374         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
7375         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
7376         alternative of addsi3_5200.
7377
7378 2005-07-11  Ian Lance Taylor  <ian@airs.com>
7379
7380         * config/mips/mips.md (ffs<mode>2): Remove.
7381
7382 2005-07-11  Ian Lance Taylor  <ian@airs.com>
7383
7384         * doc/tree-ssa.texi (Cleanups): Improve description of
7385         TRY_FINALLY_EXPR.
7386         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
7387
7388 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
7389
7390         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
7391         * tree.h (DECL_ARGUMENT_FLD): New macro.
7392
7393 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
7394
7395         Fix PR tree-optimization/22404
7396
7397         * tree-ssa-structalias.c (create_variable_info_for): Use
7398         correct offset.
7399
7400 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7401
7402         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
7403         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
7404         for second comparison operand.
7405         * config/bfin/predicates.md (reg_or_const_int_operand): New.
7406
7407         * config/bfin/bfin.md (define_attr "type"): Add "sync".
7408         (define_insn_reservation "alu"): Likewise.
7409         (csync, ssync): Now of type sync.
7410         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
7411         -mcsync-anomaly -mspecld-anomaly.
7412         * config/bfin/bfin.opt (mcsync): Remove.
7413         (mcsync-anomaly, mspecld-anomaly): Add.
7414         * config/bfin/bfin.c: Include "insn-codes.h".
7415         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
7416         (TARGET_DEFAULT_TARGET_FLAGS): New.
7417         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
7418
7419 2005-07-11  Steven Bosscher  <stevenb@suse.de>
7420
7421         * basic-block.h: Give the BB flags enum a name, bb_flags.
7422         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
7423         * cfgcleanup.c (enum bb_flags): Remove here.
7424         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
7425         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
7426         (update_forwarder_flag): Likewise.
7427         (thread_jump): Likewise.
7428         (try_forward_edges): Likewise.
7429         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
7430         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
7431         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
7432
7433 2005-07-11  Richard Guenther  <rguenther@suse.de>
7434
7435         * config/i386/i386.opt: New target option -msseregparm.
7436         * config/i386/i386.c (override_options): Error out for
7437         -msseregparm but no SSE support.
7438         (ix86_function_sseregparm): Check for global sseregparm.
7439         * doc/invoke.texi: Document -msseregparm.
7440
7441 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7442
7443         * config.gcc (m32r-*-linux*): Use the default extra_parts.
7444         (m32rle-*-linux*): Ditto.
7445
7446 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
7447
7448         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
7449         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
7450         bytes.
7451
7452 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7453
7454         PR middle-end/22239
7455         PR target/20126
7456         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
7457         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
7458
7459 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
7460
7461         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
7462         (varmap): Heapify varmap.
7463         (constraints): Heapify constraints.
7464         (struct constraint_graph): Heapify succs and preds.
7465         (constraint_vec_find): Update for heapification.
7466         (constraint_set_union): Ditto.
7467         (insert_into_complex): Ditto.
7468         (constraint_edge_vec_find): Ditto.
7469         (erase_graph_self_edge): Ditto.
7470         (add_graph_edge): Ditto.
7471         (get_graph_weights): Ditto.
7472         (merge_graph_nodes): Ditto.
7473         (build_constraint_graph): Ditto.
7474         (topo_visit): Ditto.
7475         (solve_graph): Ditto.
7476         (create_variable_info_for): Ditto.
7477         (init_base_vars): Ditto.
7478         (delete_points_to_sets): Free graph, varmap, and complex constraints.
7479         (condese_varmap_nodes): Free complex vector.
7480         (clear_edges_for_node): Clear succs and preds vector.
7481
7482 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
7483
7484         * tree-ssa-structalias.c (update_alias_info): Change counting of
7485         references to not include vdefs.
7486
7487 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
7488
7489         * tree-ssa-alias.c (free_used_part_map): Add missing free.
7490         (up_insert): Ditto.
7491
7492 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7493
7494         * pa.c (pa_commutative_p): Make PLUS commutative when
7495         TARGET_NO_SPACE_REGS is true.
7496
7497 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
7498
7499         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
7500         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
7501         * tree-dfa.c (dump_subvars_for): New.
7502         (debug_subvars_for): New.
7503         (dump_variable): Show subvariables if VAR has them.
7504         * tree-flow-inline.h (get_subvar_at): New.
7505         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
7506         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
7507         Update all users.
7508         (struct subvar): Change fields offset and size to unsigned
7509         HOST_WIDE_INT.
7510         (dump_subvars_for): Declare.
7511         (debug_subvars_for): Declare.
7512         (get_subvar_at): Declare.
7513         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
7514         to unsigned HOST_WIDE_INT *.
7515         (overlap_subvar): Likewise.
7516         * tree-gimple.c (is_gimple_reg): Always return false for
7517         SFTs and memory tags.
7518         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
7519         Update all callers.
7520         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
7521         (compute_may_aliases): Call compute_points_to_sets.
7522         (collect_points_to_info_for): Remove.
7523         (compute_points_to_and_addr_escape): Remove.
7524         (delete_alias_info): Call delete_points_to_sets.
7525         (compute_flow_sensitive_aliasing): If the call to
7526         find_what_p_points_to returns false, call set_pt_anything.
7527         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
7528         (set_pt_anything): Clear pi->pt_vars.
7529         (set_pt_malloc): Remove.
7530         (merge_pointed_to_info): Remove.
7531         (add_pointed_to_expr): Remove.
7532         (add_pointed_to_var): Remove.
7533         (collect_points_to_info_r): Remove.
7534         (is_escape_site): Make extern.
7535         (create_sft): New.
7536         (create_overlap_variables_for): Call it.
7537         * tree-ssa-copy.c (merge_alias_info): Never merge
7538         flow-sensitive alias information.
7539         * tree-ssa-operands.c (get_expr_operands): Adjust variables
7540         offset and size to be unsigned HOST_WIDE_INT.
7541         (add_to_addressable_set): Rename from note_addressable.
7542         Set TREE_ADDRESSABLE as the variables are added to the set.
7543         Update all users.
7544         (add_stmt_operand): Do not try to micro-optimize unmodifiable
7545         operands into VUSEs when adding V_MAY_DEFs for members in an
7546         alias set.
7547         * tree-ssa-operands.h (add_to_addressable_set): Declare.
7548         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
7549         (struct variable_info): Add bitfield is_heap_var.
7550         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
7551         (new_var_info): Initialize is_heap_var.
7552         (get_constraint_for): Add HEAP variables to the symbol table.
7553         Mark them with is_heap_var.
7554         (update_alias_info): New.  Taken mostly from the old
7555         compute_points_to_and_addr_escape.
7556         (handle_ptr_arith): New.
7557         (find_func_aliases): Call update_alias_info.
7558         Call handle_ptr_info for tcc_binary expressions.
7559         Call mark_stmt_modified.
7560         (create_variable_info_for): If DECL has subvars, do not create
7561         variables for its subvars.  Always add all the fields.
7562         (set_uids_in_ptset): If the solution includes ANYOFFSET and
7563         SFTs, then add all the SFTs of the structure.
7564         If VI->DECL is an aggregate with subvariables, add the SFT at
7565         VI->OFFSET.
7566         (find_what_p_points_to): If VI is an artificial variable,
7567         translate to bitfields in SSA_NAME_PTR_INFO.
7568         If the solution is empty, set pi->pt_vars to NULL
7569         (init_base_vars): Create ANYOFFSET.
7570         (compute_points_to_sets): Rename from create_alias_vars.
7571         Make extern.
7572         (pass_build_pta): Remove.
7573         (delete_points_to_sets): Rename from delete_alias_vars.
7574         (pass_del_pta): Remove.
7575         * tree-ssa-structalias.h (struct alias_info): Move from
7576         tree-ssa-alias.h.
7577         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
7578         NUM_REFERENCES_SET): Likewise.
7579         (compute_points_to_sets, delete_points_to_sets): Declare.
7580
7581 2005-07-09  Richard Henderson  <rth@redhat.com>
7582
7583         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
7584         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
7585         alpha_split_lock_test_and_set_12): New functions.
7586         * config/alpha/alpha-protos.h: Update.
7587         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
7588         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
7589         * config/alpha/sync.md (I12MODE): New.
7590         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
7591         (sync_<fetchop_name><I48MODE>): Likewise.
7592         (sync_nand<I48MODE>): Likewise.
7593         (sync_old_<fetchop_name><I48MODE>): Likewise.
7594         (sync_new_<fetchop_name><I48MODE>): Likewise.
7595         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
7596         (sync_compare_and_swap<I48MODE>): Likewise.
7597         (sync_lock_test_and_set<I48MODE>): Likewise.
7598         (sync_compare_and_swap<I12MODE>): New.
7599         (sync_compare_and_swap<I12MODE>_1): New.
7600         (sync_lock_test_and_set<I12MODE>): New.
7601         (sync_lock_test_and_set<I12MODE>_1): New.
7602
7603 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
7604
7605         PR 21356
7606         PR 22332
7607         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
7608
7609 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
7610
7611         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
7612         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
7613
7614 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
7615
7616         PR target/21656
7617         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
7618
7619 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
7620
7621         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
7622         memory_operand constraint.
7623         (store_conditional_<mode>): Same.
7624         (sync_compare_and_swap<mode>): Same.
7625         (sync_lock_test_and_set<mode>): Same.
7626
7627 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
7628
7629         Rewrite PIC support to more closely model actual instructions.
7630         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
7631         (cris_symbol): Remove prototypes for removed functions.
7632         (cris_pic_symbol_type_of, cris_valid_pic_const)
7633         (cris_expand_pic_call_address): Prototypes for new functions.
7634         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
7635         variable.
7636         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
7637         modifiers.
7638         <case ':'>: Add case for new punctuation character.
7639         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
7640         emitting (extra) PIC modifier.
7641         <case UNSPEC>: Do not assert for PLT.
7642         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
7643         (cris_expand_prologue, cris_expand_epilogue): Check
7644         for pic_offset_table_rtx usage instead of taking
7645         current_function_uses_pic_offset_table as the final word.
7646         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
7647         Remove flag_pic difference.
7648         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
7649         the moral equivalents of...
7650         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
7651         functions.
7652         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
7653         (cris_handle_option): Mark ARG as unused.
7654         (cris_expand_pic_call_address): New worker function for "call",
7655         "call_value".
7656         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
7657         output PIC constructs here.
7658         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
7659         as symbol-specific modifers, not whole or part of operands.
7660         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
7661         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
7662         constants and flag_pic.
7663         (CONSTANT_INDEX_P): Adjust for new functions.
7664         (enum cris_pic_symbol_type): New helper type.
7665         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
7666         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
7667         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
7668         define_constants.
7669         ("movsi"): Emit actual instructions for GOT and relative access.
7670         ("*movsi_got_load"): New pattern to set up the register holding
7671         the GOT pointer.
7672         ("*movsi_internal"): Operand 1 is not a plain general_operand.
7673         Adjust FIXME for 'S'.
7674         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
7675         Use "movs" for -fpic cases.
7676         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
7677         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
7678         ("call", "call_value"): Just call cris_expand_pic_call_address for
7679         PIC addresses.
7680         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
7681         Remove special pattern.
7682         ("*expanded_call_side", "*expanded_call_value_side"): New
7683         patterns.
7684         (gotplt-to-plt, gotplt-to-plt-side-call)
7685         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
7686         peephole2:s.
7687         * config/cris/cris/predicates.md
7688         ("cris_general_operand_or_gotless_symbol"): Remove unused
7689         predicate.
7690         ("cris_general_operand_or_symbol"): Adjust for new functions.
7691
7692 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
7693
7694         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
7695
7696 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
7697
7698         * Makefile.in (TREE_H): Add treestruct.def.
7699         (c-decl.o): Add pointer-set.h
7700         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
7701         visibility on regular DECL's.
7702         (merge_decls): Fix the copying of decl nodes of various types for
7703         the new structures.  Don't update RTL, section name, weak status,
7704         etc, on DECL's without RTL.
7705         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
7706         Don't check volatile on non-variable types.
7707         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
7708         to check whether we have seen arguments.
7709         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
7710         flag is checked before field (flag is common, field is not).
7711         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
7712         TS_DECL_COMMON could have an origin.
7713         (add_location_or_const_value_attribute): Don't check section name
7714         on non-var/function decls.
7715         (dwarf2out_var_location): Reverse order of tests.
7716         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
7717         with DECL_WRTL_CHECK.
7718         * expmed.c (make_tree): rtl is now in decl_with_rtl.
7719         * fold-const.c (fold_binary): Don't check weakness on
7720         non-var/function decls.
7721         (tree_expr_nonzero_p): Ditto.
7722         (fold_checksum_tree): Use tree_decl_extra as sizeof
7723         buffer.
7724         * ggc-page.c (extra_order_size_table): Add sizes for
7725         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
7726         tree_field_decl.
7727         * gimplify.c (gimplify_bind_expr): Only set
7728         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
7729         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
7730         without RTL.
7731         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
7732         * langhooks.h (init_ts). New langhook.
7733         * passes.c (rest_of_decl_compilation): Reverse order of tests.
7734         * print-tree.c (print_node): Update to only print fields that
7735         exist in the structures the passed decl has.
7736         * toplev.c (wrapup_global_declarations): Don't reset
7737         DECL_DEFER_OUTPUT on DECL's that don't contain it.
7738         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
7739         * tree-inline.c (remap_decl): Ditto.
7740         * tree-outof-ssa.c (create_temp): Reverse order of tests.
7741         * tree-pretty-print.c (print_declaration): Don't print
7742         DECL_REGISTER on things that don't contain it.
7743         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
7744         non-var/function decls.
7745         * tree.c (tree_contains_struct): New structure.
7746         (init_priority_for_decl): New hashtable.
7747         (tree_int_map): New structure.
7748         (tree_int_map_eq): New function.
7749         (tree_int_map_marked_p): Ditto.
7750         (tree_int_map_hash): Ditto.
7751         (tree_map): Move to tree.h.
7752         (tree_map_eq): Externalize.
7753         (tree_map_hash): Ditto.
7754         (tree_map_marked_p): Ditto.
7755         (init_ttree): Set up tree_contains_struct and call langhook.
7756         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
7757         (tree_code_size): Update for new structures.
7758         (tree_node_structure): Update for new structures.
7759         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
7760         without the field.
7761         (copy_node_stat):  Copy init priority.
7762         (build_decl_stat): Ditto for visibility.
7763         (ts_enum_names): New.
7764         (tree_contains_struct_check_failed): New function.
7765         (decl_init_priority_lookup): Ditto.
7766         (decl_init_priority_insert): Ditto.
7767         * treestruct.def: New file.
7768         * tree.h (CODE_CONTAINS_STRUCT): New macro.
7769         (CONTAINS_STRUCT_CHECK): Ditto.
7770         (tree_contains_struct_check_failed): New prototype.
7771         (DECL_CHECK): Removed.
7772         (DECL_MINIMAL_CHECK): New.
7773         (DECL_COMMON_CHECK): Ditto.
7774         (DECL_WRTL_CHECK): Ditto.
7775         (DECL_NON_COMMON_CHECK): Ditto.
7776         (DECL_WITH_VIS_CHECK): Ditto.
7777         (VAR_OR_FUNCTION_DECL_P): Ditto
7778         (struct tree_decl_minimal): New structure.
7779         (struct tree_decl_common): Ditto.
7780         (struct tree_decl_with_rtl): Ditto.
7781         (struct tree_decl_with_vis): Ditto.
7782         (struct tree_decl_non_common): Ditto.
7783         (struct tree_field_decl): Ditto.
7784         (struct tree_parm_decl): Ditto.
7785         (struct tree_var_decl): Ditto.
7786         (struct tree_function_decl): Ditto.
7787         (struct tree_const_decl): Ditto.
7788         (struct tree_result_decl): Ditto.
7789         (union tree_node): Add new structures.
7790         * var-tracking.c (track_expr_p): Reverse order of tests.
7791
7792         * doc/c-tree.texi: Add documentation on DECL node internal structure.
7793
7794 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
7795
7796         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
7797         * system.h: Poison FINALIZE_PIC.
7798         * doc/tm.texi (FINALIZE_PIC): Remove.
7799
7800 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
7801
7802         PR tree-opt/22329
7803         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
7804         to the correct type if we have a MODIFY_EXPR.
7805
7806 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
7807
7808         PR tree-optimization/22360
7809         * tree.c (upper_bound_in_type): Fix calculations for casting
7810         to a non-wider signed type and casting a signed value to a
7811         wider unsigned type.
7812         (lower_bound_in_type): Fix calculations for casting to a
7813         non-wider signed type.
7814
7815         PR tree-optimization/20139
7816         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
7817         release_defs.
7818         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
7819         fold_cond_expr_cond.
7820         * tree-ssanames.c (release_defs): Assert in_ssa_p.
7821         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
7822
7823 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
7824
7825         PR tree-opt/22356
7826         * tree-complex.c (expand_complex_libcall): Produce
7827         REALPART_EXPR/IMAGPART_EXPR with the correct type.
7828
7829 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
7830
7831         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
7832         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
7833         b" assert and inserted fastpath code for this case.
7834         (bitmap_ior): Removed "a != b" assert.
7835
7836 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
7837
7838         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
7839         (ENDFILE_SPEC): Likewise.
7840         * config/m32r/m32r.h (ASM_SPEC): Likewise.
7841
7842         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
7843         a large stack frame at epilogue.
7844
7845 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
7846
7847         * final.c: Include sdbout.h when required.
7848
7849 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
7850
7851         * config.gcc (*-*-darwin*): Only one target-specific header file
7852         for generic darwin.
7853         (powerpc-*-darwin*): Add version-specific header files.
7854         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
7855         * config.in: Regenerate.
7856         * configure: Regenerate.
7857         * gcc.c: Include xregex.h.
7858         (version_compare_spec_function): New.
7859         (spec_function): Add version-compare.
7860         (replace_outfile_spec_function): Reformat comment.
7861         (compare_version_strings): New.
7862         * config/darwin-c.c (version_as_macro): New.
7863         (builtin_define): New.
7864         (darwin_cpp_builtins): New.
7865         * config/darwin-protos.h (darwin_cpp_builtins): New.
7866         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
7867         (LIB_SPEC): Make unconditional, update comment.
7868         (TARGET_C99_FUNCTIONS): Define.
7869         * config/darwin.opt: Sort.
7870         (mmacosx-version-min=): New.
7871         * config/darwin7.h: Delete.
7872         * config/darwin8.h: Delete.
7873         * config/i386/darwin.h (): Call darwin_cpp_builtins.
7874         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
7875         (TARGET_C99_FUNCTIONS): Define.
7876         * config/rs6000/darwin7.h: New.
7877         * config/rs6000/darwin8.h: New.
7878         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
7879         (-mmacosx-version-min): Document.
7880
7881 2005-07-07  Ian Lance Taylor  <ian@airs.com>
7882
7883         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
7884
7885 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
7886
7887         PR middle-end/22239
7888         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
7889
7890 2005-07-07  Khem Raj  <kraj@mvista.com>
7891
7892         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
7893         in bytes, not words.
7894
7895 2005-07-07  Paul Brook  <paul@codesourcery.com>
7896
7897         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
7898         DEFAULT_FUNCTION_ARG_PADDING to upward.
7899
7900 2005-07-07  Richard Henderson  <rth@redhat.com>
7901
7902         * function.c (locate_and_pad_parm): Record parameter alignment in
7903         stack_alignment_needed.
7904
7905 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
7906
7907         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
7908         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
7909         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
7910         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
7911         (define_attr "type"): Add isync, sync, load_l, store_c.
7912         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
7913         Create scratch volatile MEM.
7914         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
7915         sync.
7916         (load_locked_<mode>): New.
7917         (store_conditional_<mode>): New.
7918         (sync_compare_and_swap<mode>): Replace with splitter.
7919         (sync_lock_test_and_set<mode>): Replace with splitter.
7920         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
7921         and UNSPECV_ISYNC.
7922         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
7923         is ics.  Attribute isync.
7924         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
7925         lwsync.
7926         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
7927         and UNSPECV_SYNC_OP.
7928         (emit_unlikely_jump): New.
7929         (emit_load_locked): New.
7930         (emit_store_conditional): New.
7931         (rs6000_split_compare_and_swap): New.
7932         (rs6000_split_lock_test_and_set): New.
7933         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
7934         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
7935         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
7936         rs6000_split_lock_test_and_set): Declare.
7937         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
7938         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
7939         store_c, isync, sync.
7940
7941 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
7942
7943         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
7944         filenames to gtyp-gen.h.
7945         (s-typ-gen): Use it in place of for loops.
7946
7947 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
7948
7949         * hooks.c (hook_bool_rtx_int_false): New function.
7950         * hooks.h (hook_bool_rtx_int_false): Declare.
7951         * target-def.h (TARGET_COMMUTATIVE_P): Define.
7952         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
7953         * target.h (struct gcc_target): Add commutative_p member.
7954         * targhooks.c (hook_bool_rtx_commutative_p): New function.
7955         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
7956         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
7957         (pa_commutative_p): New function.
7958         * jump.c (target.h): Include.
7959         (rtx_renumbered_equal_p): Use targetm.commutative_p.
7960         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
7961
7962 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
7963
7964         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
7965         (s390_expand_setmem): New.
7966         * config/s390/s390.c: Likewise.
7967         (print_shift_count_operand): Truncate to 12 bits instead of 6.
7968         Adapt comments.
7969         * config/s390/s390.md: ("setmem<mode>"): Accept character as
7970         general_operand.  Call new function "s390_expand_setmem".
7971         ("clrmem_long", "*clrmem_long"): Rewrite to ...
7972         ("setmem_long", "*setmem_long"): ... this.
7973
7974 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
7975
7976         * config/s390/s390.c: (optimization_options): Enable
7977         TARGET_MVCLE at -Os.
7978         * doc/invoke.texi: Document changes in default behaviour.
7979         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
7980
7981 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
7982
7983         * expr.c: (set_storage_via_setmem): Convert opchar to mode
7984         defined by back-end.
7985
7986 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
7987
7988         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
7989         all sets in the pattern.
7990         * config/rs6000/rs6000.md (stack_protect_testsi,
7991         stack_protect_testdi): Likewise.
7992
7993 2005-07-06  Jeff Law  <law@redhat.com>
7994
7995         * tree-vrp.c (simplify_using_ranges): Kill.
7996         (vrp_finalize): Remove call to simplify_using_ranges.
7997         (simplify_stmt_using_ranges): New function extracted from
7998         simplify_using_ranges.
7999         (simplify_div_or_mod_using_ranges): Likewise.
8000         (simplify_abs_using_ranges): Likewise.
8001         (simplify_cond_using_ranges): New function.
8002         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
8003         * tree-ssa-propagate.c (substitute_and_fold): Call
8004         simplify_stmt_using_ranges if we have range information.
8005
8006 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
8007
8008         * config/ia64/ia64.c (ia64_reorg): Check optimize before
8009         ia64_flag_schedule_isns2.
8010
8011         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
8012         reading/writing general registers.
8013         (ia64_function_arg): Revert 2005-06-18 change.
8014
8015 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
8016
8017         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
8018         (legitimize_tls_address): Use gcc_unreachable instead of abort.
8019
8020 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
8021
8022         * function.c (expand_function_end): Revert part of 2005-06-27
8023         patch.  Do sjlj_emit_function_exit_after after return_label.
8024
8025 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
8026
8027         * doc/install.texi (--disable-libssp): New.
8028
8029 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
8030
8031         * doc/invoke.texi: Update -fforce-mem documentation.
8032         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
8033         code for -fforce-mem.
8034         * expmed.c: (store_bit_field,store_fixed_bit_field,
8035         extract_bit_field): Ditto.
8036         * expr.c: (convert_move): Ditto.
8037         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
8038         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
8039         emit_conditional_add,expand_float,expand_fix): Ditto.
8040         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
8041         (common_handle_option): Issue warning when -fforce-mem specified.
8042
8043 2005-07-06  Paul Brook  <paul@codesourcery.com>
8044
8045         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
8046         argument is empty.
8047         * configure: Regenerate.
8048
8049 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
8050
8051         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
8052
8053 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
8054
8055         Fix PR tree-optimization/22319
8056         Fix PR tree-optimization/22140
8057         Fix PR tree-optimization/22310
8058
8059         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
8060         variable sized types.
8061         Use correct type for intermediate structure on *a = *b structure
8062         copies.
8063
8064 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
8065
8066         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
8067         Remove.
8068         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
8069         (machine_function): Move typedef to...
8070         * config/rs6000/rs6000.c (machine_function): ... here.  Add
8071         varargs_save_offset field.
8072         (rs6000_stack_t): Remove varargs_size field.
8073         (setup_incoming_varargs): Allocate varargs save area using
8074         assign_stack_local, try to make it as small as possible.
8075         Save offset from virtual_stack_vars_rtx to the save area
8076         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
8077         instead of magic 8 when fp word byte size is used.
8078         (rs6000_va_start): Use cfun->machine->varargs_save_offset
8079         instead of -RS6000_VARARGS_SIZE.
8080         (rs6000_stack_info, debug_stack_info,
8081         rs6000_initial_elimination_offset): Remove all traces of
8082         varargs_size.
8083         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
8084         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
8085         RS6000_VARARGS_AREA.
8086
8087 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
8088
8089         PR tree-optimization/21963
8090         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
8091         constant_multiple_of in the same way get_computation_cost_at does.
8092
8093 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
8094
8095         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
8096         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
8097         (gen_compare_reg): If sparc_compare_emitted is set, clear it
8098         and return its previous value.
8099         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
8100         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
8101         constants.
8102         (stack_protect_set, stack_protect_test): New expanders.
8103         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
8104         stack_protect_testdi): New insns.
8105         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8106         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
8107
8108 2005-07-06  Jeff Law  <law@redhat.com>
8109
8110         * tree-ssa-dce.c (cfg_altered): New global.
8111         (tree_dce_init): Initialize cfg_altered.
8112         (remove_dead_stmt): If we remove an edge in the CFG, then set
8113         CFG_ALTERED.
8114         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
8115         the dominators.
8116
8117 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
8118
8119         * Makefile.in (stamp-collect-ld): Use
8120         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
8121         ./collect-ld if it already exists.
8122         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
8123         Don't remove ./nm if it already exists.
8124
8125 2005-07-05  Devang Patel  <dpatel@apple.com>
8126
8127         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
8128         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
8129         * tree-vectorizer.c (vect_loop_location): New.
8130         (vect_print_dump_info): Use vect_loop_location.
8131         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
8132         (vectorize_loops): Set vect_loop_location.
8133         * tree-vect-analyze.c (vect_analyze_offset_expr,
8134         vect_determin_vectorization_factor, vect_analyze_operations,
8135         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
8136         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
8137         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
8138         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
8139         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
8140         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
8141         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
8142         vect_analyze_loop): Adjust vect_print_dump_info API.
8143         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
8144         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
8145         vect_finish_stmt_generation, vectorizable_assignment,
8146         vectorizable_operation, vectorizable_store, vectorizable_load,
8147         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
8148         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
8149         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
8150         vect_transform_loop): Same.
8151         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
8152         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
8153         Same.
8154
8155 2005-07-05  Randolph Chung  <tausq@debian.org>
8156
8157         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
8158         * configure: Regenerate.
8159         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
8160         (pa_tls_referenced_p): Declare.
8161         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
8162         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
8163         (legitimize_tls_address): New.
8164         (hppa_legitimize_address): Handle TLS addresses.
8165         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
8166         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8167         (emit_move_sequence): Handle TLS addresses.
8168         (pa_encode_section_info): Call default handler to handle common
8169         sections.
8170         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
8171         (CONSTANT_ADDRESS_P): Reject TLS operands.
8172         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
8173         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
8174         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
8175         (UNSPEC_TLSLE): Define new constants.
8176         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
8177         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
8178         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
8179         (tie_symbolic_operand, tle_symbolic_operand): New
8180
8181 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
8182
8183         * aclocal.m4: Update macros for autoconf 2.59 style.
8184         * configure.ac: Likewise.
8185
8186 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8187
8188         * pa.c (function_value): Handle small aggregates on 32-bit targets.
8189         (function_arg): Pass small aggregates in general registers on 32-bit
8190         targets.
8191         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
8192
8193 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
8194
8195         * Makefile.in (final.o): Fix dependencies.
8196
8197 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
8198
8199         PR c/22013
8200         PR c/22098
8201         * langhooks.h (struct lang_hooks): Add expr_to_decl.
8202         * langhooks.c (lhd_expr_to_decl): New.
8203         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
8204         New.
8205         (LANG_HOOKS_INITIALIZER): Update.
8206         * tree.c (recompute_tree_invarant_for_addr_expr): Call
8207         expr_to_decl langhook.
8208         * c-tree.h (c_expr_to_decl): Declare.
8209         * c-typeck.c (c_expr_to_decl): New.
8210         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
8211         specially.
8212         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
8213
8214 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
8215
8216         PR c/22308
8217         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
8218         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
8219
8220 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
8221
8222         * Makefile.in: Adjust dependencies.
8223         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
8224         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
8225         * alias.c (rest_of_handle_cfg, pass_cfg): New.
8226         * bb-reorder.c (duplicate_computed_gotos): Make it static.
8227         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
8228         rest_of_compilation.
8229
8230         * bb-reorder.c (gate_duplicate_computed_gotos,
8231         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
8232         rest_of_handle_reorder_blocks, pass_reorder_blocks,
8233         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
8234         pass_partition_blocks): New.
8235         * bt-load.c (gate_handle_branch_target_load_optimize,
8236         rest_of_handle_branch_target_load_optimize,
8237         pass_branch_target_load_optimize): New.
8238         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
8239         pass_jump2): New.
8240         * cfglayout.c (pass_insn_locators_initialize): New.
8241         * cfgrtl.c (pass_free_cfg): New.
8242         * combine.c (gate_handle_combine, rest_of_handle_combine,
8243         pass_combine): New.
8244         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
8245         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
8246         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
8247         * except.c (pass_set_nothrow_function_flags,
8248         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
8249         pass_rtl_eh): New.
8250         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
8251         rest_of_handle_shorten_branches, pass_shorten_branches,
8252         rest_of_clean_state, pass_clean_state): New.
8253         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
8254         rest_of_handle_remove_death_notes, pass_remove_death_notes,
8255         rest_of_handle_life, pass_life, rest_of_handle_flow2,
8256         pass_flow2): New.
8257         * function.c (pass_instantiate_virtual_regs, pass_init_function,
8258         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
8259         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
8260         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
8261         pass_gcse): New.
8262         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
8263         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
8264         pass_rtl_ifcvt, gate_handle_if_after_combine,
8265         rest_of_handle_if_after_combine, pass_if_after_combine,
8266         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
8267         pass_if_after_reload): New.
8268         * integrate.c (pass_initial_value_sets): New.
8269         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
8270         pass_purge_lineno_notes): New.
8271         * mode-switching.c (rest_of_handle_mode_switching,
8272         pass_mode_switching): New.
8273         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
8274         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
8275         pass_loop2): New.
8276         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
8277         pass_loop_optimize): New.
8278         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
8279         pass_sms): New.
8280         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
8281         pass_gcse2): New.
8282         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
8283         pass_postreload_cse): New.
8284         * profile.c (gate_handle_profiling, pass_profiling,
8285         rest_of_handle_branch_prob, pass_branch_prob): New.
8286         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
8287         pass_split_before_regstack, gate_handle_split_before_regstack,
8288         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
8289         rest_of_handle_split_all_insns, pass_split_all_insns): New.
8290         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
8291         pass_stack_regs): New.
8292         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
8293         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
8294         pass_stack_adjustments): New.
8295         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
8296         pass_regrename): New.
8297         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
8298         pass_delay_slots, gate_handle_machine_reorg,
8299         rest_of_handle_machine_reorg, pass_machine_reorg): New.
8300         * rtl.h (extern void purge_line_number_notes): New.
8301         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
8302         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
8303         pass_sched2): New.
8304         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
8305         pass_tracer): New.
8306         * value-prof.c (gate_handle_value_profile_transformations,
8307         rest_of_handle_value_profile_transformations,
8308         pass_value_profile_transformations): New.
8309         * var-tracking.c (gate_handle_var_tracking,
8310         pass_variable_tracking): New.
8311         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
8312
8313         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
8314         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
8315         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
8316         rest_of_handle_old_regalloc, rest_of_handle_regrename,
8317         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
8318         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
8319         rest_of_handle_gcse2, rest_of_handle_regmove,
8320         rest_of_handle_tracer, rest_of_handle_if_conversion,
8321         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
8322         rest_of_handle_web, rest_of_handle_branch_prob,
8323         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
8324         rest_of_handle_jump_bypass, rest_of_handle_combine,
8325         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8326         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8327         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
8328         rest_of_handle_mode_switching, rest_of_handle_jump,
8329         rest_of_handle_eh, rest_of_handle_stack_adjustments,
8330         rest_of_handle_flow2, rest_of_handle_jump2,
8331         rest_of_handle_peephole2, rest_of_handle_postreload,
8332         rest_of_handle_shorten_branches, rest_of_clean_state,
8333         rest_of_compilation): Remove.
8334
8335         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
8336         * passes.c (dump_flags, in_gimple_form, all_passes,
8337         all_ipa_passes, all_lowering_passes, register_one_dump_file,
8338         register_dump_files, next_pass_1, last_verified, execute_todo,
8339         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
8340         from tree-optimize.c.
8341         (init_optimization_passes): Moved from tree-optimize.c,
8342         adding the RTL optimizations.
8343         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
8344         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
8345         all_ipa_passes, all_lowering_passes, register_one_dump_file,
8346         register_dump_files, next_pass_1, last_verified, execute_todo,
8347         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
8348         init_tree_optimization_passes, ipa_passes): Delete.
8349         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
8350         the RTL dumps.
8351         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
8352         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
8353         from tree.h.
8354         (ipa_passes): Remove.
8355         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
8356         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
8357         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
8358         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
8359         (dump_info_p, dump_flag): Moved to tree-dump.h.
8360
8361         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
8362         cgraph.c, opts.c.
8363         * passes.c (finish_optimization_passes): Use dump_begin
8364         and dump_end, TDI_end.
8365         (gate_rest_of_compilation): New.
8366         (pass_rest_of_compilation): Use it.
8367         (gate_postreload, pass_postreload): New.
8368         * toplev.c (general_init): Rename init_tree_optimization_passes.
8369         * toplev.h (init_tree_optimization_passes): Rename to
8370         init_optimizations_passes.
8371         * tree-dump.c (dump_flag): Make static.
8372         (dump_files): Remove RTL dumps.
8373         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
8374         pass_cleanup_cfg, pass_free_cfg_annotations,
8375         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
8376         pass_init_datastructures, pass_fixup_cfg): Make non-static.
8377         * tree-pretty-print.c: Include tree-pass.h.
8378         * cgraph.c: Include tree-dump.h.
8379
8380 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
8381
8382         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
8383         Only fall back to saying it points to readonly memory if
8384         we can't do better.
8385
8386 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8387
8388         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
8389         * config/m32r/m32r.c (m32r_compute_frame_size,
8390         m32r_expand_prologue): Take current_function_profile into
8391         account whenever we reference
8392         current_function_uses_pic_offset_table.
8393         (m32r_finalize_pic): Remove.
8394         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
8395
8396 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
8397
8398         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
8399         instead of $<.  Don't remove ./as if it already exists.
8400
8401 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8402
8403         PR target/21723
8404         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
8405         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
8406         for complex modes when generating code for PA 1.0.
8407         (VALID_FP_MODE_P): New macro.
8408         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
8409         sets for all general and floating point modes.  Align wide floating
8410         point modes to even register boundaries to comply with architectural
8411         requirements.
8412         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
8413         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
8414         (VALID_FP_MODE_P): New macro.
8415         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
8416         sets for all general and floating point modes.  Align wide floating
8417         point modes to even register boundaries to comply with architectural
8418         requirements.
8419
8420 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
8421
8422         * tree-dump.c (dump_files): Initialize dump number for .cgraph
8423         to 0.
8424
8425 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
8426
8427         * tree-ssa-structalias.c: Don't include expr.h.
8428
8429 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
8430
8431         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
8432         comments.
8433
8434 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
8435
8436         Fix PR tree-optimization/22279
8437
8438         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
8439         correct operator.
8440
8441 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
8442
8443         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
8444
8445 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
8446
8447         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
8448         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
8449         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
8450         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
8451         config/stormy16/stormy16.c, config/v850/v850.c,
8452         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
8453         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
8454         Avoid "." or "\n" at end of diagnostics and capital letters at
8455         start of diagnostics.
8456         * combine.c, cse.c: Don't translate dump file output.
8457         * toplev.c (print_version): Only translate output if going to
8458         stderr.
8459
8460 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
8461
8462         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
8463         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
8464         typos.
8465
8466 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8467
8468         * pa.c (fix_range): Fix typo in comment.
8469
8470 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
8471
8472         * tree-vrp.c (extract_range_from_assert): Replace
8473         fold (build (...)) with fold_build2.
8474
8475 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8476
8477         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
8478         gcc_gfc_char_table, init_dynamic_gfc_info): New.
8479         (format_types_orig, handle_format_attribute): Add support for
8480         format "gcc_gfc".
8481
8482 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8483
8484         * varasm.c (assemble_variable): Fix format specifier thinko.
8485
8486 2005-07-03  Ira Rosen  <irar@il.ibm.com>
8487
8488         PR tree-optimization/22029 (and 22135)
8489         * tree-pretty-print.c (dump_generic_node): Check that the node is not
8490         a phi node before calling dump_vops.
8491
8492 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8493
8494         * tree-dump.h (dump_string_field): Declare.
8495         * tree-dump.c: Use it instead of dump_string.
8496         (dump_string_field): Make non-static.
8497
8498 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
8499
8500         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
8501         up the minimal CFG stuff always when optimize > 0.  Call
8502         split_all_insns_noflow in PIC case if needed.
8503
8504 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8505             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
8506
8507         PR c++/18279
8508         * c-decl.c (c_write_global_declarations): Dump contents of
8509         external scope to.
8510         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
8511         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
8512         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
8513         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
8514         is enabled.
8515
8516 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
8517
8518         * c-common.h (GCC_DIAG_STYLE): Define.
8519         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
8520         version for format checking to 4.1.
8521         * c-format.c: Include toplev.h after c-common.h.
8522         (enum format_type): Add gcc_tdiag_format_type.
8523         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
8524         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
8525         (format_types_orig): Add gcc_tdiag.
8526         (init_dynamic_diag_info): Support gcc_tdiag formats.
8527         (handle_format_attribute): Likewise.
8528         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
8529         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
8530         version for format checking to 4.1.
8531         (warning0, warning, error, pedwarn, sorry): Use
8532         ATTRIBUTE_GCC_DIAG.
8533         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
8534         (finish_aliases_1): Do not use %qE.
8535         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
8536         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
8537         Correct format bugs.
8538         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
8539         parameter to unsigned HOST_WIDE_INT.
8540         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
8541
8542 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
8543
8544         PR middle-end/21742
8545         * expr.c (write_complex_part): Use adjust_address for MEM.
8546         (read_complex_part): Same.
8547
8548 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
8549
8550         Fix PR tree-optimization/22280
8551
8552         * tree-sra.c (generate_element_init): Remove useless loop.
8553
8554 2005-07-02  Richard Henderson  <rth@redhat.com>
8555
8556         * config/alpha/alpha.c (alpha_legitimize_address): Check for
8557         TLS_MODEL_NONE.
8558         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
8559
8560 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
8561
8562         PR middle-end/14490
8563         * fold-const.c (fold_binary): Handle the return value of
8564         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
8565         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
8566
8567 2005-07-02  Jeff Law  <law@redhat.com>
8568
8569         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
8570         a eliminate type conversion which feeds an equality comparison
8571         if the original type or either operand in the comparison is a
8572         function pointer.
8573
8574 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
8575
8576         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
8577         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
8578         texts.
8579         * config/avr/avr.c: Do not use '`' as left quote.
8580         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
8581         Remove "." from end of diagnostics.  Make diagnostics start with
8582         lowercase letter.
8583
8584 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
8585             Joseph S. Myers  <joseph@codesourcery.com>
8586
8587         * toplev.c (default_tree_printer): Handle setting location with
8588         '+' flag.
8589         * c-objc.common.c (c_tree_printer): Likewise.
8590         * c-format.c (gcc_diag_flag_specs): Add '+'.
8591         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
8592         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
8593         formats.
8594         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
8595         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
8596         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
8597         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
8598         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
8599         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
8600         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
8601         format arguments where %J is used without %D.
8602
8603 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
8604
8605         * gcc.c (LINK_SSP_SPEC): Define.
8606         (link_ssp_spec): New variable.
8607         (LINK_COMMAND_SPEC): Add %(link_ssp).
8608         (static_specs): Add link_ssp_spec.
8609         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
8610         * configure: Rebuilt.
8611         * config.in: Rebuilt.
8612
8613         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
8614         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
8615         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
8616         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
8617         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
8618         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
8619         -0x7008(2) instead of reading __stack_chk_guard variable.
8620         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
8621         number.
8622         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
8623         (stack_protect_set, stack_protect_test): Use *_tls* patterns
8624         if TARGET_THREAD_SSP_OFFSET is defined.
8625         (stack_tls_protect_set_si, stack_tls_protect_set_di,
8626         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
8627
8628         Revert:
8629         2005-06-27  Richard Henderson  <rth@redhat.com>
8630         * libgcc-std.ver (GCC_4.1.0): New.
8631         * libgcc.h (__stack_chk_guard): Declare.
8632         (__stack_chk_fail, __stack_chk_fail_local): Declare.
8633         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
8634         * mklibgcc.in (lib2funcs): Add them.
8635
8636 2005-07-01  Richard Henderson  <rth@redhat.com>
8637
8638         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
8639         void * before struct sigcontext *.
8640         (x86_fallback_frame_state): Likewise.
8641
8642 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
8643
8644         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
8645
8646 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
8647
8648         PR tree-opt/22269
8649         * tree-ssa-reassoc.c (should_transpose): Fix which operand
8650         we check for SSA_NAME for.
8651
8652 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
8653
8654         Fix PR tree-optimization/22071
8655
8656         * tree-ssa-structalias.c (offset_overlaps_with_access): New
8657         function.
8658         (get_constraint_for_component_ref): Use it.
8659
8660 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
8661
8662         PR other/22264
8663         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
8664         print out the last new line.
8665
8666 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
8667
8668         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
8669         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
8670         * config/cris/cris.c (cris_conditional_register_usage): Adjust
8671         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
8672         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
8673         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
8674         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
8675         (enum reg_class): New member CC0_REGS.
8676         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
8677         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
8678         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
8679         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8680         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
8681         Adjust for register now described.
8682
8683 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
8684
8685         PR target/22262
8686         * config/i386/i386.md (stack_protect_test_si,
8687         stack_protect_test_di): Add earlyclobber for scratch 3.
8688         * config/rs6000/rs6000.md (stack_protect_testsi,
8689         stack_protect_testdi): Add earlyclobber for scratch 3,
8690         remove earlyclobber from scratch 4.
8691
8692 Older entries for 2005 can be found in ChangeLog-2005.