OSDN Git Service

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