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