OSDN Git Service

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