OSDN Git Service

672a484c4a9e4134b5bdd3ddaf4b496e1532b9c2
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
2
3         * doc/install.texi: Update URL for Jacks.
4         * doc/sourcebuild.texi: Likewise.
5
6 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
7
8         PR target/24007
9         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
10         registers when choosing register preferences.
11         (movdf_hardfloat64): Same.
12
13 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
14
15         * expmed.c (expand_shift): Don't use the target of the rotate as
16         target for the first expanded shift insn.
17         * testsuite/gcc.dg/20050922-1.c: Testcase added.
18
19 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
20
21         PR tree-optimization/22438
22         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
23         preserved iv rhs rewriting specially.
24
25 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
26
27         * tree-data-ref.c (analyze_array_indexes): Only estimate when
28         estimate_only  is true.
29         * tree-flow.h (ref_contains_indirect_ref): New prototype.
30         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
31         tree-ssa-structalias.c 
32         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
33         ref_contains_indirect_ref.
34         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
35
36 2005-09-21  DJ Delorie  <dj@redhat.com>
37
38         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
39         MASK_PTR_A0D0.
40         (mn10300_return_in_memory): Support variable size types also.
41         (mn10300_pass_by_reference): Likewise.
42         (mn10300_function_value): New.
43         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
44         (FUNCTION_OUTGOING_VALUE): Likewise.
45         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
46         * doc/invoke.texi: Document it.
47
48 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
49
50         PR target/22585
51         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
52         force integer op1 into register for XFmode compares.
53
54 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
55
56         PR middle-end/23971
57         * expmed.c (alg_code): Add alg_impossible.
58         (alg_hash_entry): Add cost.
59         (synth_mult): Record alg_impossible in the hash table if
60         multiplication by a given integer is impossble within the
61         limit.  Speed up using alg_impossible.
62
63 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
64
65         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
66         argument.  Allow and set any offset if needs_anyoffset is passed
67         in.
68         (get_constraint_for): Add argument here too.
69         Pass it down.
70         (do_structure_copy): Pass NULL to get_constraint_for.
71         (handle_ptr_arith): Ditto.
72         (find_func_aliases): Ditto.
73
74 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
75
76         PR rtl-optimization/23898
77         * output.h (get_attr_min_length): Declare.
78         * final.c (get_attr_length_1): New function, broken out of:
79         (get_attr_length).
80         (get_attr_min_length): New function.
81         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
82         (duplicate_computed_gotos): Likewise.
83         * genattr.c (insn_min_length): Generate declaration.
84         * genattrtab.c (min_fn, min_attr_value): New functions.
85         (make_length_attrs): Generate insn_min_length.
86
87 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
88
89         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
90
91 2005-09-20  Richard Henderson  <rth@redhat.com>
92
93         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
94         EXPAND_STACK_PARM.
95
96 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
97
98         * c.opt (fextended-identifiers): New.
99         * c-opts.c (c_common_handle_option): Handle
100         -fextended-identifiers.
101         * doc/cpp.texi: Update documentation of extended identifiers.
102         * doc/cppopts.texi (-fextended-identifiers): Document.
103
104 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
105
106         PR tree-optimization/23929
107         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
108         if expr is NULL.
109
110         PR tree-optimization/23818
111         * tree-stdarg.c (execute_optimize_stdarg): Call
112         calculate_dominance_info.
113
114 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
115
116         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
117         (analyze_siv_subscript_cst_affine): Add weak SIV test.
118         (compute_overlap_steps_for_affine_1_2): Use
119         get_number_of_iters_for_loop.
120         (analyze_subscript_affine_affine): Check whether difference is
121         zero first.
122         Use get_number_of_iters_for_loop.
123         Check whether overlap occurs outside of bounds.
124         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
125
126 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
127
128         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
129         base register if possible.
130
131 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
132
133         PR tree-optimization/18463
134         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
135         converting it directly is not possible.
136         (chrec_convert_aggressive): New function.
137         * tree-chrec.h (chrec_convert_aggressive): Declare.
138         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
139         Fold chrec conversions aggressively if asked to.
140         (instantiate_parameters): Modified because of changes in
141         instantiate_parameters_1.
142
143 2005-09-19  Richard Henderson  <rth@redhat.com>
144
145         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
146         (reduc_splus_v2df): New.
147
148 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
149
150         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
151         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
152
153 2005-09-19  Richard Henderson  <rth@redhat.com>
154
155         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
156         vcondu<SSEMODE12>.
157
158 2005-09-19  Richard Henderson  <rth@redhat.com>
159
160         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
161         (ia64_expand_dot_prod_v8qi): New.
162         * config/ia64/ia64-protos.h: Update.
163         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
164         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
165         sdot_prodv8qi, sdot_prodv4hi): New.
166         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
167
168 2005-09-19  Richard Henderson  <rth@redhat.com>
169
170         PR 23941
171         * real.c (exact_real_truncate): Return false if the format cannot
172         represent the number as a normal.
173
174         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
175         for a memory source.
176
177 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
178
179         * tree-ssa-operands.c (swap_tree_operands): Export.
180         * tree.h (swap_tree_operands): Declare.
181         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
182         Call swap_tree_operands.
183         
184 2005-09-19  Richard Henderson  <rth@redhat.com>
185
186         * tree-flow.h (merge_alias_info): Declare.
187         * tree-ssa-copy.c (merge_alias_info): Export.
188         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
189         (vect_create_data_ref_ptr): Use create_iv directly.
190         (vectorizable_load): Use correct types for integer constants.
191         (vect_generate_tmps_on_preheader): Likewise.
192         (vect_gen_niters_for_prolog_loop): Likewise.
193
194 2005-09-19  Steven Bosscher  <stevenb@suse.de>
195
196         PR rtl-optimization/23943
197         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
198
199 2005-09-18  Jan Hubicka  <jh@suse.cz>
200
201         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
202
203 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
204
205         * varasm.c (output_constant): Do not abort on conversions to union
206         types between different sizes.
207
208 2005-09-18  Richard Guenther  <rguenther@suse.de>
209
210         PR middle-end/23944
211         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
212         fallback.
213
214 2005-09-18  Paul Brook  <paul@codesourcery.com>
215
216         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
217
218 2005-09-17  Richard Henderson  <rth@redhat.com>
219
220         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
221         * tree-ssa-loop.c (pass_vect_dce): Remove.
222         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
223         of pass_vectorize.
224
225 2005-09-17  Richard Henderson  <rth@redhat.com>
226
227         * tree-pass.h (pass_vect_dce): Declare.
228         * passes.c (init_optimization_passes): Add it.
229         * tree-flow.h (tree_ssa_dce): Declare.
230         * tree-ssa-dce.c (tree_ssa_dce): Export.
231         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
232         (gate_tree_vectorize): ... here.
233         (pass_vect_dce): New.
234
235 2005-09-17  Jan Hubicka  <jh@suse.cz>
236
237         * except.c (struct eh_status): Turn region_array into vec.
238         (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
239         convert_from_eh_region_ranges, find_exception_handler_labels, 
240         current_function_has_exception_handlers, assign_filter_values, 
241         build_post_landing_pads, dw2_build_landing_pads,
242         sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
243         sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
244         foreach_reachable_handler, can_throw_internal_1,
245         convert_to_eh_region_ranges, verify_eh_tree): Update uses of
246         region_array.
247         (duplicate_eh_region_1): Update region_array.
248         (duplicate_eh_regions): Resize region_array and avoid recomputing.
249
250 2005-09-17  David Edelsohn  <edelsohn@gnu.org>
251
252         PR middle-end/22067
253         * expmed.c (expand_mult): Substitute simple register for op0 when
254         computing max_cost.
255
256 2005-09-17  Richard Henderson  <rth@redhat.com>
257
258         * expr.c (emit_move_via_integer): Add force argument, pass it on
259         to emit_move_change_mode.  Update callers.
260         (emit_move_complex): Pass true to new force argument.
261         * function.c (expand_function_end): Move expand_eh_return call
262         earlier.  Merge sub-word complex values into a pseudo before
263         copying to the return hard register.
264
265 2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>
266
267         * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
268         between different sizes.
269
270 2005-09-16  Paolo Bonzini  <bonzini@gnu.org>
271
272         PR 23903
273
274         * passes.c (init_optimization_passes): Register dump files for
275         IPA passes first.
276
277 2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>
278
279         * config/s390/s390-protos.h (s390_overlap_p): Prototype added.
280         * config/s390/s390.c (s390_overlap_p): New function.
281         * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
282         peephole2, "*xc" peephole2): Added overlap check to the peephole2
283         condition.
284
285 2005-09-16  Richard Guenther  <rguenther@suse.de>
286
287         * ipa-pure-const.c (static_execute): Free auxiliar information.
288         * ipa-type-escape.c (discover_unique_type): Free temporary key.
289         * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.
290
291 2005-09-15  DJ Delorie  <dj@redhat.com>
292
293         * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.
294
295 2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
296
297         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
298         to order operands.
299         (swap_commutative_operands_with_target): New.
300
301 2005-09-15  Daniel Berlin  <dberlin@dberlin.org>
302
303         * tree-data-ref.c (analyze_array_indexes): Add estimate_only
304         parameter.
305         Update callers.
306         (estimate_iters_using_array): New function.
307         * tree-data-ref.h (estimate_iters_using_array): Prototype
308         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
309         Use estimate_iters_using_array instead of analyze_array.
310         
311 2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>
312
313         * tree-nested.c (get_frame_type): Mark the "non-local frame structure"
314         as addressable.
315
316 2005-09-15  Michael Matz  <matz@suse.de>
317
318         * tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.
319
320 2005-09-14  Daniel Berlin  <dberlin@dberlin.org>
321
322         PR tree-optimization/23835
323         * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
324         (create_name_tags): Rewrite to be not O(num_ssa_names^2).
325
326 2005-09-14  Richard Henderson  <rth@redhat.com>
327
328         * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
329         (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.
330
331 2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>
332
333         * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
334         in the ARRAY_TYPE case.
335
336 2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>
337
338         * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
339
340 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
341
342         PR middle-end/22480
343         * tree-vect-transform.c (vectorizable_operation): Return false for
344         scalar shift operations and for vector shift operations with
345         non-invariant shift arguments.  Use scalar tree operand op1 as
346         a shift operand when vector shift insn pattern uses scalar shift
347         operand.
348         * Makefile.in (tree-vect-transform.o): Depend on recog.h.
349
350 2005-09-14  Olivier Hainque  <hainque@adacore.com>
351
352         * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
353         value if it has side-effects.
354
355 2005-09-14  David Edelsohn  <edelsohn@gnu.org>
356
357         PR target/22068
358         * config/rs6000/rs6000.md (muldi3): Add mulli alternative.
359
360 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
361
362         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
363         passed as NAME as if it were label at start of function code.
364
365 2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>
366
367         * config/sh/sh.md (*movv4sf_i): Add general register cases to
368         the constraints.
369
370 2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
371
372         * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
373         as early clobber.  Rewrite so the PIC register is not implicitly used.
374
375 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
376
377         * tree.c (annotate_with_file_line): Compare line numbers before
378         file names.
379
380 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
381
382         PR target/23816
383         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
384         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
385
386 2005-09-13  Ian Lance Taylor  <ian@airs.com>
387
388         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
389         than a HOST_WIDEST_INT to gen_doloop_begin.
390
391 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
392
393         * tree-dfa.c (dump_variable): Guard against NULL annotations.
394
395 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
396
397         PR tree-optimize/23817
398         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
399
400 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
401
402         PR target/23774
403         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
404         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
405         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
406         (restore_stack_nonlocal): Likewise.
407         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
408
409 2005-09-12  Ian Lance Taylor  <ian@airs.com>
410
411         PR g++/7874
412         * c.opt (ffriend-injection): New C++ option.
413         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
414         (C++ Dialect Options): Document -ffriend-injection.
415
416 2005-09-12  Josh Conner  <jconner@apple.com>
417
418         PR middle-end/23237
419         * ipa-reference.c (static_execute): Don't mark variables in
420         named sections TREE_READONLY.
421
422 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
423
424         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
425         stack_tie.
426
427 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
428
429         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and 
430         V_MUST_DEF instead of just the first_use_p.
431         Don't mark the virtual variables for renaming on the statement which 
432         is being removed.
433         (pass_dse): Remove TODO_update_ssa.
434
435 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
436
437         PR middle-end/23290
438         * stor-layout.c (compute_record_mode): For records with a single
439         field, actually check the field's mode size against the type size.
440
441         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
442         registers for TARGET_SHMEDIA.
443         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
444         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
445         of GENERAL_REGS and FP_REGS.
446
447 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
448
449         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
450
451 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
452
453         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
454         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
455         are omitted.  Exclude stack_tie insn too.
456
457 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
458
459         PR rtl-optimization/23098
460         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
461         0.0f is easy.
462         * config/rs6000/rs6000.md (movdf splitter): Use
463         const_double_operand predicate for TARGET_POWERPC64.
464         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
465         SYMBOL_REF method to ABI_V4.
466
467         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
468         replace_equiv_address.
469         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
470         rs6000_sr_alias_set and MEM_NOTRAP.
471         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
472
473 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
474
475         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
476         handle CALL_EXPR again.
477
478 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
479
480         * arm/predicates.md (alignable_memory_operand): Delete.
481
482 2005-09-10  Richard Henderson  <rth@redhat.com>
483
484         PR debug/23806
485         * dbxout.c (dbxout_expand_expr): New.
486         (dbxout_symbol): Use it.
487
488 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
489
490         * arm.c (arm_gen_rotated_half_load): Delete.
491         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
492         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
493         (thumb_set_return_address): Likewise.
494         (thumb_load_double_from_address): Use adjust_address.
495         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
496         (extendhsisi2_mem, movhi_bytes): Use change_address.
497         (movhi): Use widen_memory_access.
498         (reload_out_df): Use replace_equiv_address.
499         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
500
501 2005-09-09  Richard Henderson  <rth@redhat.com>
502
503         PR debug/20998
504         * dbxout.c: Include expr.h.
505         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
506         (dbxout_symbol): Handle DECL_VALUE_EXPR.
507         * Makefile.in (dbxout.o): Add EXPR_H.
508
509 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
510
511         PR tree-optimization/23509
512         * tree-cfg.c (replace_uses_by): Use replace_exp.
513         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
514         pointers have name_mem_tag or type_mem_tag set.
515
516 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
517
518         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use 
519         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
520         of wrongly accessing operands.
521
522 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
523
524         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
525         * tree-chrec.c: Include tree-scalar-evolution.h.
526         (chrec_convert): Instantiate the base and step before calling
527         scev_probably_wraps_p that would fail on parametric evolutions.
528         Collect all the fails into a single section failed_to_convert,
529         print a diagnostic, and return chrec_dont_know instead of calling
530         fold_convert.
531         * tree-scalar-evolution.c (loop_closed_phi_def): New.
532         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
533         phi nodes.
534         (scev_const_prop): Don't replace the definition of a loop closed ssa
535         phi node by itself, or by another loop closed ssa phi node.
536         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
537         that base and step are defined.
538
539 2005-09-09  Richard Guenther  <rguenther@suse.de>
540
541         PR c++/23624
542         * fold-const.c (fold_ternary): Check truth_value_p before
543         calling invert_truthvalue.
544
545 2005-09-09  Nick Clifton  <nickc@redhat.com>
546
547         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
548         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
549         dimension of these arrays.
550         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
551         these arrays.
552         * longlong.h: Only provide a prototype for the __clz_tab[] array
553         if this header has not been included from libgcc2.h.
554         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
555         defining own types.
556         Provide prototypes for exported functions.
557         Use the __clz_tab[] and __popcount_tab[] arrays provided by
558         libgcc2.c.
559
560 2005-09-08  Josh Conner  <jconner@apple.com>
561
562         PR c++/21135
563         PR c++/23180
564         * expr.c (expand_expr_addr_expr_1): Don't invoke
565         expand_simple_binop for EXPAND_INITIALIZER.
566
567 2005-09-08  Richard Henderson  <rth@redhat.com>
568
569         PR debug/23190
570         * toplev.c (wrapup_global_declaration_1): Split out ...
571         (wrapup_global_declaration_2): ... from ...
572         (wrapup_global_declarations): ... here.  Return bool.
573         (check_global_declaration_1): Split out ...
574         (check_global_declarations): from here.
575         (emit_debug_global_declarations): New.
576         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
577         check_global_declaration_1, emit_debug_global_declarations): Declare.
578         * c-decl.c (c_write_global_declarations_1): Don't create a vector
579         of decls.  Call wrapup_global_declaration_1,
580         wrapup_global_declaration_2, check_global_declaration_1 directly.
581         (c_write_global_declarations_2): New.
582         (ext_block): New.
583         (c_write_global_declarations): Call c_write_global_declarations_2.
584         * langhooks.c (write_global_declarations): Call
585         emit_debug_global_declarations.
586
587         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
588         remove decls that have DECL_RTL_SET_P.
589         * passes.c (rest_of_decl_compilation): Invoke
590         cgraph_varpool_finalize_decl for all but functions.
591
592 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
593
594         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
595         the result of a conversion if the new min and max cannot be compared.
596
597 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
598
599         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
600         (override_options): Setting s390_sr_alias_set removed.
601         (save_fpr, save_gprs): Set alias set to vararg or frame.
602         (restore_fpr, restore_gprs, s390_emit_prologue): Replace 
603         s390_sr_alias_set with get_frame_alias_set ().
604         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
605         get_varargs_alias_set ().
606
607 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
608
609         PR objc/20574
610         PR objc/19324
611         * c-parser.c (c_parser_objc_method_definition): If the next
612         token is not "{", error out and don't start the function.
613
614 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
615
616         * tree-vrp.c (extract_range_from_expr): Move the check for non
617         nullness after the check for gimple invariant.
618
619 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
620
621         * tree.c (host_integerp, tree_low_cst): Correct function comment.
622
623 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
624
625         PR target/23747
626         * config/m32r.md (movmemsi_internal): Canonicalize order of
627         operands in PLUS component of template.
628
629 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
630
631         * reload1.c (fixup_eh_region_note): Remove assertion.
632         (fixup_abnormal_edges): Reverted removal of call to 
633         find_many_sub_basic_blocks made on 2005-08-31.
634
635 2005-09-07  Richard Henderson  <rth@redhat.com>
636
637         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
638         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
639         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
640         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
641         rearrange for better packing.
642         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
643         (lookup_cfa_1): Remove inline marker.
644         (cfa_equal_p): Split out of ...
645         (def_cfa_1): ... here.  Use INVALID_REGNUM.
646         (build_cfa_loc): Handle !cfa->indirect.
647         (frame_pointer_cfa_offset): New.
648         (dbx_reg_number): Assert register elimination performed; do
649         leaf register remapping.
650         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
651         (eliminate_reg_to_offset): New.
652         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
653         for verifiably local stack frame addresses; re-base to CFA.
654         (mem_loc_descriptor): Remove can_use_fbreg argument.
655         (concat_loc_descriptor, loc_descriptor): Likewise.
656         (containing_function_has_frame_base): Remove.
657         (rtl_for_decl_location): Don't do register elimination or
658         leaf register remapping here.
659         (secname_for_decl): Split out from ..
660         (add_location_or_const_value_attribute): ... here.
661         (convert_cfa_to_loc_list): New.
662         (compute_frame_pointer_to_cfa_displacement): New.
663         (gen_subprogram_die): Use them.
664         * tree.h (frame_base_decl): Remove.
665         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
666         (prologue_stack_adjust): Remove.
667         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
668         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
669         (set_frame_base_location): Remove.
670         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
671         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
672         (vt_add_function_parameters): Don't eliminate_regs.
673         (vt_initialize): Don't create frame_base_decl.
674
675 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
676
677         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
678         version of GNU binutils for 4.x and later.
679
680 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
681
682         * ggc-page.c (ggc_push_context): Remove.
683         (ggc_pop_context): Likewise.
684         * ggc.h (ggc_push_context): Remove.
685         (ggc_pop_context): Likewise.
686
687 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
688
689         PR target/8973
690         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
691         returning from an interrupt handler.
692
693 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
694
695         PR target/8972
696         * config/arc/arc.c (output_shift): Add check for loop count when
697         optimizing.
698
699 2005-09-06  Steven Bosscher  <stevenb@suse.de>
700
701         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
702         form manually.
703         (abs_replacement): Likewise.
704         (pass_phiopt): Remove TODO_update_ssa.
705
706 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
707
708         PR c/23075
709         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
710         if "return with no value, in function returning non-void" warning
711         has been issued.
712         * tree-cfg.c (execute_warn_function_return): Don't look at
713         RETURN_EXPRs with TREE_NO_WARNING set.
714
715         PR target/22362
716         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
717         for internal functions doesn't use registers used by global registers
718         variables.  Use fewer register parameters if there are global register
719         variables.
720
721 2005-09-06  Olivier Hainque  <hainque@adacore.com>
722             Eric Botcazou  <ebotcazou@adacore.com>
723
724         PR middle-end/14997
725         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
726         when we would be extracting outside its bit span (bitpos+bitsize
727         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
728         Ada unchecked conversions.
729
730 2005-09-06  Steven Bosscher  <stevenb@suse.de>
731
732         * tree-ssa-pre.c (try_look_through_load): New function.
733         (compute_avail): Use it to try to look through loads for some
734         more useful expressions.
735
736 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
737
738         * simplify-rtx.c (simplify_binary_operation_1): Correct the 
739         condition for detecting cases like (a&a) and (a^a).
740
741 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
742
743         * common.opt: Add option ftree-vect-loop-version.
744         * params.def: Add --param vect-max-version-checks.
745         * doc/invoke.texi: Document ftree-vect-loop-version and
746         --param vect-max-version-checks.
747         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
748         may_misalign_stmts and defines for accessors.
749         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
750         LOOP_VINFO_MAY_MISALIGN_STMTS.
751         (destroy_loop_vec_info): VEC_free for
752         LOOP_VINFO_MAY_MISALIGN_STMTS.
753         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
754         Update documentation.
755         (vect_update_misalignment_for_peel): New.
756         (vect_enhance_data_refs_alignment): Update to choose loop
757         peeling or loop versioning if appropriate for the (potentially)
758         unaligned data references in the loop.
759         (vect_analyze_data_refs_alignment): Remove call to
760         vect_enhance_data_refs_alignment so the checks can be done
761         earlier.
762         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
763         and move up call to vect_analyze_data_refs_alignment.
764         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
765         (vect_transform_loop): Add call to loop_version.
766
767 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
768
769         PR rtl-optimization/23098
770         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
771         * simplify-rtx.c (constant_pool_reference_p): New function.
772         * rtl.h (constant_pool_reference_p): New prototype.
773         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
774         constant_pool_reference_p in condition and
775         avoid_constant_pool_reference in preparation statements.
776
777 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
778
779         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for 
780         STRICT_LOW_PART SETs.
781
782 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
783
784         PR middle-end/21460
785         * except.c (sjlj_emit_function_enter): Find the function begin
786         note even when it's not in first basic block.
787
788 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
789
790         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
791         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
792         * aclocal.m4: Regenerate.
793
794 2005-09-05  DJ Delorie  <dj@redhat.com>
795
796         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
797         of macro.
798
799 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
800
801         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
802         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
803         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
804         Follow spelling conventions.
805         * doc/invoke.texi: Follow spelling conventions.
806
807 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
808
809         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
810         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
811         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
812
813 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
814
815         PR target/23683
816         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
817         (output_stack_adjust): Use gen_tmp_stack_mem.
818         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
819         (sh_set_return_address, sh_allocate_initial_value): Likewise.
820         (sh_get_pr_initial_val): Likewise.
821         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
822         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
823         * sh.md (divsi_inv_m0): Use gen_const_mem.
824         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
825         (movdf_i4+1): Use gen_tmp_stack_mem.
826         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
827         (fpu_switch+2): Likewise.
828         (movv4sf_i, movv16sf_i): Use adjust_address.
829         (symGOT_load): Set MEM_NOTRAP_P bit.
830
831 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
832
833         PR target/23721
834         * pa.c (emit_move_sequence): Fix typo in last change.
835
836 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
837
838         PR rtl-optimization/23454
839         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
840         is true.
841
842 2005-09-03  Richard Henderson  <rth@redhat.com>
843             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
844
845         PR middle-end/23671
846         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
847         gen_rtx_MEM.
848
849 2005-09-02  Nicolas Pitre <nico@cam.org>
850
851         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
852         to bit_count to 32 bits.
853
854 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
855
856         PR c++/23167
857         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
858         generating synthetic loads from volatile lvalues.
859
860 005-09-02  Nick Clifton  <nickc@redhat.com>
861
862         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
863         __ctzhi2, __clzhi2): New functions.
864
865 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
866
867         PR middle-end/23547
868         * tree-nested.c (struct var_map_elt): Mark with GTY.
869         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
870         var_map_elt.
871         (lookup_field_for_decl): Allocate new element in GC memory.
872         (lookup_tramp_for_decl): Likewise.
873         (convert_nl_goto_reference): Likewise
874         (create_nesting_tree): Allocate info in GC memory. Likewise for
875         info->var_map.
876         (free_nesting_tree): Free with ggc_free instead of free.
877         (root): New static variable.
878         (lower_nested_functions): Remove root as local variable.  And zero out
879         root at the end of the function.
880
881 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
882
883         PR rtl-optimization/20365
884         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
885         to short.  New member ix.
886         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
887         (simplify_plus_minus): Initialize ix members before calling qsort.
888
889 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
890
891         PR tree-optimization/23626
892         * tree-cfg.c (replace_uses_by): Clean up eh info.
893
894 2005-09-01  DJ Delorie  <dj@redhat.com>
895
896         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
897         fprintf.
898
899 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
900
901         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
902         (rs6000_split_multireg_move): Use replace_equiv_address instead of
903         gen_rtx_MEM.
904
905 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
906
907         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
908         do not issue warning for a variable definition following
909         a declaration.
910
911 2005-09-01  Richard Henderson  <rth@redhat.com>
912
913         PR 23668
914         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
915         conversion to CONST_VECTOR.
916
917 2005-09-01  Richard Henderson  <rth@redhat.com>
918
919         PR 23676
920         * reload1.c (reload_as_needed): Check !CALL_P before calling
921         fixup_eh_region_note.
922         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
923
924 2005-09-01  DJ Delorie  <dj@redhat.com>
925
926         * varasm.c (output_constant): Let the target resolve
927         conversions of addresses to non-default pointer sizes.
928
929 2005-09-01  Nicolas Pitre <nico@cam.org>
930
931         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
932         to alow matching ARM pre-indexed addressing mode.
933         (arm_override_options): Remove now irrelevant comment.
934
935 2005-09-01  Phil Edwards  <phil@codesourcery.com>
936
937         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
938         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
939         * config/i386/vxworks.h:  Likewise.
940         * config/i386/t-vxworksae:  New file, for VxWorks AE.
941         * config/i386/vxworksae.h:  Likewise.
942
943 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
944
945         PR tree-optimization/23410
946         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
947         sequence is not wrapping during the first step.
948
949 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
950
951         PR debug/7241
952         * dwarf2out.c (base_type_die): Compare char_type_node with
953         TYPE_MAIN_VARIANT (type), not type.
954
955 2005-09-01  Richard Guenther  <rguenther@suse.de>
956
957         PR tree-optimization/15366
958         * common.opt: Add -finline-functions-called-once.
959         Put -fearly-inlining in alphabetically ordered place.
960         * doc/invoke.texi: Document new option.
961         * ipa-inline.c (cgraph_decide_inlining): Honour
962         flag_inline_functions_called_once.
963
964 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
965
966         PR rtl-optimization/23478
967         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
968         (alloc_qty): Initialize it.
969         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
970         (combine_regs): Combine also n_throwing_calls_crossed fields.
971         (find_free_reg): Don't attempt to caller-save pseudos crossing
972         calls that might throw.
973         * global.c (struct allocno): Add throwing_calls_crossed field.
974         (global_alloc): Revert 2005-08-22 change.  Initialize
975         throwing_calls_crossed.
976         (find_reg): Don't attempt to caller-save pseudos crossing calls that
977         might throw.
978
979 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
980
981         PR target/23649
982         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
983         (mask64_operand): Reinstate code prior to 2005-06-11 change.
984         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
985         (and64_2_operand): Tweak to use predicate.
986         (and_operand): Adjust for mask_operand changes.
987         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
988         (print_operand): Likewise.
989         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
990         (mask64_1or2_operand): Delete.
991         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
992         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
993         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
994         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
995         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
996         (rotldi3_internal4): Likewise.
997         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
998         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
999         (ashldi3_internal7): Likewise.
1000         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
1001         (ashldi3_internal, ashldi3_internal9 split): Likewise.
1002         (anddi3 split): Don't match mask64_operand.
1003         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
1004         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
1005         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
1006         't' splitter predicate.
1007         (movdi_internal64 + 2): Revert 2005-06-11 change.
1008
1009 2005-08-31  DJ Delorie  <dj@redhat.com>
1010
1011         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
1012         (m32c_asm_integer): Add support for 32 bit pointers.
1013
1014 2005-08-31  Richard Henderson  <rth@redhat.com>
1015
1016         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
1017         component-like references for setting MEM_NOTRAP_P.
1018
1019         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
1020         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
1021
1022 2005-08-31  Richard Henderson  <rth@redhat.com>
1023
1024         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
1025         into a pseudo before applying gen_lowpart.
1026
1027 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
1028
1029         * doc/install.texi (Specific): Update cctools version required
1030         for full functionality.
1031         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
1032         linkers as -macosx_version_min.
1033
1034 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
1035
1036         PR target/21255
1037         * sh.c (print_operand, %R and %S): Add handling of floating point
1038         registers, memory, constants and invalid operands.
1039
1040 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
1041
1042         * ipa-pure-const.c: Change dump name.
1043
1044 2005-08-31 Uros Bizjak <uros@kss-loka.si>
1045
1046         PR target/23570
1047         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
1048         to "reg_or_0_operand".
1049         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
1050
1051 2005-08-31  Dale Johannesen  <dalej@apple.com>
1052
1053         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
1054         loops that count down.
1055
1056 2005-08-31  Richard Henderson  <rth@redhat.com>
1057
1058         PR rtl-opt/23601
1059         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
1060         (fixup_eh_region_note): New.
1061         (reload_as_needed): Call it.
1062         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
1063         don't call find_many_sub_basic_blocks; call verify_flow_info.
1064         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
1065         (keep_stack_depressed): Likewise.
1066         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
1067
1068 2005-08-31  Richard Henderson  <rth@redhat.com>
1069
1070         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
1071         fp return matching.
1072
1073 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
1074
1075         * expr.c (expand_expr_real_1): Compare size of address 
1076         mode to target's address mode size in deciding expansion of 
1077         the constant address.
1078
1079 2005-08-31  Richard Guenther  <rguenther@suse.de>
1080
1081         PR middle-end/23477
1082         * expr.c (all_zeros_p): New function.
1083         (expand_expr_real_1): Handle the case of an all-zero
1084         non-addressable constructor separately.
1085
1086 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
1087
1088         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
1089         arguments, adjust all callers.
1090         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
1091
1092 2005-08-30  Richard Henderson  <rth@redhat.com>
1093
1094         PR target/23630
1095         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
1096         whenever the mode sizes match.
1097
1098 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
1099
1100         * calls.c (load_register_parameters): Fix comment typo.
1101         * expr.c (emit_push_insn): Comment formatting.
1102
1103 2005-08-30  Ian Lance Taylor  <ian@airs.com>
1104
1105         * config/i386/x-cygwin (host-cygwin): Change dependency from
1106         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
1107
1108 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
1109
1110         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
1111         parts of 'vals'.
1112
1113 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
1114
1115         PR middle-end/23408
1116         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
1117         call to ggc_collect.
1118
1119 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
1120
1121         PR bootstrap/21268
1122         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
1123         beginning.  Remove $(INCLUDES) from all the rules, if following
1124         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
1125
1126 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
1127
1128         PR middle-end/23484
1129         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
1130         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
1131         not constant, but maxlen is, don't set len to maxlen, rather
1132         set maxlen to len if len is a constant.
1133
1134 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
1135
1136         PR tree-optimization/23475
1137         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
1138         and counts.
1139
1140 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
1141
1142         Fix PR middle-end/22455
1143
1144         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
1145         Checksum only the parts of the tree that exist for the tree code.
1146
1147 2005-08-28  Dale Johannesen  <dalej@apple.com>
1148
1149         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
1150
1151 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
1152
1153         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
1154
1155 2005-08-28  Richard Henderson  <rth@redhat.com>
1156
1157         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
1158         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
1159         of char_type_node.
1160
1161 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
1162
1163         PR ada/23593
1164         * builtins.c (get_memory_rtx): Don't strip nops
1165         in between COMPONENT_REFs.
1166
1167 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
1168
1169         PR middle-end/23463
1170         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
1171         types.
1172         (gimplify_modify_expr): Check for zero sized types and gimplify the
1173         rhs and lhs as statements.
1174
1175 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
1176
1177         PR libgcj/23508
1178         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
1179         state for return address column of signal frames.
1180
1181 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
1182
1183         PR target/23539
1184         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
1185         bytes >= 2 not bytes == 2.
1186         (expand_block_move): Same.
1187
1188 2005-08-27  Richard Guenther  <rguenther@suse.de>
1189
1190         PR target/23575
1191         * config/i386/sse.md (sse2_movsd): Add missing closing
1192         braces.
1193
1194 2005-08-27  Paul Brook  <paul@codesourcery.com>
1195
1196         * genrecog.c (enum decision_type): Add DT_num_insns.
1197         (struct decision_test): Add u.num_insns.
1198         (add_to_sequence): Add DT_num_insns test.
1199         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
1200         (write_cond, debug_decision_2): Ditto.
1201         (change_state): Assume peep2_next_insn never fails.
1202         Remove "afterward" argument.
1203         (write afterward, write_tree): Update to match.
1204         * recog.c (peep2_current_count): New variable.
1205         (peep2_next_insn): Check it.
1206         (peephole2_optimize): Set peep2_current_count.
1207         * recog.h (peep2_current_count): Declare.
1208
1209 2005-08-26  Josh Conner  <jconner@apple.com>
1210
1211         PR middle-end/23584
1212         * ipa-pure-const.c (check_tree): Check for volatile-ness
1213         when considering a dereference.
1214
1215 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
1216
1217         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
1218
1219 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
1220
1221         PR rtl-optimization/23561
1222         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
1223         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
1224         at most LEN bytes long memory fits into the field.
1225         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
1226         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
1227         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
1228
1229 2005-08-26  Richard Henderson  <rth@redhat.com>
1230
1231         PR rtl-opt/23560
1232         * loop.c (biased_biv_may_wrap_p): New.
1233         (maybe_eliminate_biv_1): Use it to suppress non-equality
1234         comparison transformations.  Delete disabled code.
1235
1236 2005-08-26  Ian Lance Taylor  <ian@airs.com>
1237
1238         * combine.c (make_extraction): Avoid reference outside object.
1239
1240 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
1241
1242         * stor-layout.c (finalize_type_size): Restore behaviour for
1243         non-aggregate types to the status quo ante of the patch for
1244         pr 23467.  Document why it matters.
1245
1246 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
1247
1248         PR c/23506
1249         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
1250         array by one element, initialize the BT_LAST element with NULL.
1251
1252 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
1253
1254         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
1255         optimizing for size.
1256         (plus_eqsi): Same.
1257         (compare_plus_eqsi): Same.
1258         (plus_eqsi_compare): Same.
1259         (neg_eq0<mode>): Same.
1260         (neg_eq<mode>): Same.
1261
1262         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
1263         PROCESSOR_POWER4.
1264
1265 2005-08-26  Nick Clifton  <nickc@redhat.com>
1266
1267         * config/v850/v850.c (ep_memory_operand): Return FALSE if
1268         TARGET_EP is not defined.
1269         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
1270         TARGET_EP is enabled.
1271         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
1272         * config/v850/v850.md (save_all_interrupt): Only use the EP
1273         register if TARGET_EP is defined.
1274         (restore_all_interrupt): Likewise.
1275         * config/v850/lib1funcs.asm: Update functions so that the EP
1276         register is only used if __EP__ is defined.
1277
1278 2005-08-26  David Ung  <davidu@mips.com>
1279
1280         * config/mips/mips.c (mips_expand_prologue): Handle case when
1281         generating for MIPS16 and the outgoing argument area is more than
1282         SMALL_OPERAND. Use the frame pointer as temporary to generate the
1283         add instruction.
1284
1285 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
1286
1287         * config/crx/crx.md: Make doloop_end pattern usage controllable
1288         via mloop-nesting=<max-nesting> command line switch. Make sure
1289         the combiner cannot use doloop_end_<mode> in an illegal way.
1290         * config/crx/crx.c: Use regs up to r6 for argument passing.
1291         Refine crx_address_cost (non cst4 displacements are expensive).
1292         * config/crx/crx.opt: Add switch for mloop-nesting=.
1293
1294 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
1295
1296         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
1297         (UNSPEC_MVST): New constant.
1298
1299 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1300
1301         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
1302         Reject operands containing eliminable registers.
1303         * testsuite/gcc.dg/20050825-1.c: New testcase.
1304
1305 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
1306             Jan Hubicka  <jh@suse.cz>
1307
1308         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
1309
1310 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
1311
1312         PR tree-optimization/23546
1313         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
1314         and REAL_CST nodes.
1315
1316 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
1317
1318         * params.def (PARAM_MIN_SPEC_PROB): New.
1319         * sched-rgn.c (MIN_PROBABILITY): Delete.
1320         (compute_trg_info): Convert to PARAM_VALUE.
1321         * doc/invoke.texi (param): Document min-spec-prob.
1322
1323 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
1324
1325         * config/darwin.h: define __PIC__
1326         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
1327         TARGET_OS_CPP_BUILTINS macro.
1328
1329 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
1330
1331         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
1332         yesterday.
1333
1334 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
1335
1336         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
1337         to duplicate_block.
1338         * cfghooks.c (duplicate_block): Added position where to place
1339         new block as argument.
1340         * cfghooks.h (duplicate_block): Declaration changed.
1341         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
1342         duplicate_block.
1343         * cfglayout.h (copy_bbs): Declaration changed.
1344         * cfgloop.h (loop_version): Declaration changed.
1345         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
1346         position to copy_bbs.
1347         (loop_version): Pass position to duplicate_loop_to_header_edge.
1348         Add place_after argument and position new blocks according to
1349         it.
1350         * modulo-sched.c (sms_schedule): Pass place_after argument
1351         to loop_version.
1352         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
1353         * tree-cfg.c (split_edge_bb_loc): New function.
1354         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
1355         to determine position of new blocks.
1356         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
1357         to loop_version.
1358         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
1359         argument to duplicate_block.
1360         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
1361         Pass position to copy_bbs.
1362
1363 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
1364
1365         * fold-const.c (ptr_difference_const): Use
1366         cst_and_fits_in_hwi instead of host_integerp.
1367
1368 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
1369
1370         * config/darwin.c (gen_pic_offset): New.
1371         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
1372         Use it.
1373
1374 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
1375
1376         PR tree-optimization/23486
1377         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
1378
1379 2005-08-23  Phil Edwards  <phil@codesourcery.com>
1380
1381         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
1382         remove use_collect2.
1383         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
1384
1385         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
1386         configuration files to override the default value.
1387
1388         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
1389         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
1390         * config/vx-common.h:  New file, split out from...
1391         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
1392         * config/vxworksae.h:  New file, for VxWorks AE.
1393         * config/vxworks.opt:  New file.
1394         * config/vxlib.c:  Update for VxWorks 6.
1395
1396         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
1397         other MULTILIB_* variables appropriately.
1398         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
1399         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
1400         * config/rs6000/vxworks.h:  Update for VxWorks 6.
1401         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
1402
1403 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
1404
1405         PR target/20799
1406         * config/darwin.c (machopic_select_section): Remove the hack to
1407         mark "::operator new" and "::operator delete" for coalescing
1408         even though they are not weak.
1409
1410 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
1411
1412         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
1413         * configure: Regenerate.
1414
1415 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
1416
1417         PR middle-end/23517
1418         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
1419         between vectors.
1420         * convert.c (convert_to_integer, convert_to_vector): Likewise.
1421         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
1422         Likewise.
1423
1424 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
1425
1426         * config/rs6000/predicates.md (equality_operator): New.
1427         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
1428         comparison with a large constant.
1429
1430 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
1431
1432         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
1433
1434 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
1435
1436         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
1437         registers is even, and we have a hardware double precision fp,
1438         align the buffer.
1439         (sh_gimplify_va_arg_expr): For floating point arguments, consider
1440         size of current argument when checking if argument was passed in
1441         registers.
1442
1443         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
1444
1445         PR middle-end/23467
1446         * stor-layout.c (finalize_type_size): Dont override
1447         existing alignment with a smaller alignment from the mode.
1448
1449 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
1450
1451         * lambda-code.c (lambda_vector_lexico_pos): Moved...
1452         * lambda.h (lambda_vector_lexico_pos): ... here.
1453         * tree-data-ref.c (build_classic_dist_vector): Return false when
1454         the distance vector is lexicographically negative.
1455
1456 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
1457
1458         PR tree-optimization/23511
1459         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't 
1460         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
1461
1462 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
1463
1464         PR tree-optimization/22043
1465         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
1466         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
1467         If ALLOW_FLEXARR, handle types ending with flexible array member.
1468         Pass false as second argument to recursive count_type_elements calls.
1469         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
1470         argument to count_type_elements call.
1471         * tree-sra.c (decide_block_copy): Likewise.
1472         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
1473         for a constant-sized object, set cleared as well.  Pass true as
1474         second argument to count_type_elements call.
1475
1476 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
1477
1478         PR target/21571
1479         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
1480         from legitimate_small_data_p, and make global.  Update use.
1481         Remove forward declaration.
1482         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
1483         Declare.
1484         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
1485
1486 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
1487
1488         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
1489         of scratch intermediates.
1490         (eq<mode>_compare): Same.
1491         (neg_eq0<mode>): New.
1492         (neg_eq<mode>): Convert to define_insn_and_split.
1493
1494 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
1495
1496         PR target/23070
1497         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
1498         stdarg functions, set/clear the fp marker even when no variable
1499         args are passed.
1500         * config/rs6000/sysv4.opt (mprototype): Describe.
1501
1502 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
1503
1504         PR rtl-optimization/23478
1505         * regs.h (reg_info): Add throw_calls_crossed.
1506         (REG_N_THROWING_CALLS_CROSSED): Define.
1507         * flow.c (allocate_reg_life_data): Initialize
1508         REG_N_THROWING_CALLS_CROSSED.
1509         (propagate_one_insn, attempt_auto_inc): Update
1510         REG_N_THROWING_CALLS_CROSSED.
1511         * global.c (global_alloc): Don't allocate pseudos across
1512         calls that may throw.
1513
1514 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1515
1516         PR c/18715
1517         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
1518         value is inbetween the range if we did not find an exact match.
1519
1520 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
1521
1522         * doc/invoke.texi (Option Summary): Add ms1 options.
1523         * doc/extend.texi: Document interrupt handler attribute for ms1.
1524         * doc/md.texi: Document ms1 constraints.
1525         * config.gcc: Add ms1-*-elf.
1526         * config/ms1/ms1.h: New.
1527         * config/ms1/ms1.c: New.
1528         * config/ms1/ms1.md: New.
1529         * config/ms1/ms1-protos.h: New.
1530         * config/ms1/ABI.txt: New.
1531         * config/ms1/crti.asm: New.
1532         * config/ms1/crtn.asm: New.
1533         * config/ms1/lib2extra-funcs.c: New.
1534         * config/ms1/t-ms1: New.
1535         * config/ms1/ms1.opt: New.
1536
1537 2005-08-22 Ira Rosen <irar@il.ibm.com>
1538
1539         * config/rs6000/altivec.md (xorv4sf3): New.
1540         (negv4sf2, neg<mode>2): Likewise.
1541
1542 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
1543
1544         PR target/23485
1545         * config/ia64/ia64.md (divsi3): Check divide by zero.
1546         (udivsi3): Likewise.
1547         (divdi3): Likewise.
1548         (udivdi3): Likewise.
1549
1550 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
1551
1552         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
1553         up to elem_bitsize bits, not max_bitsize.
1554
1555 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
1556
1557         PR tree-optimization/23433
1558         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
1559         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
1560
1561 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
1562
1563         PR tree-optimization/23434
1564         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
1565         the iteration bound is not an INTEGER_CST.
1566
1567 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
1568
1569         * tree-vect-transform.c (get_initial_def_for_reduction): Set
1570         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
1571         NULL if need_epilog_adjust is false.
1572         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
1573         Case 3 always peels first itration, not just for PLUS case, and no need
1574         to use scalar_initial_def here. Create an epilog adjustment only if
1575         scalar_initial_def is not NULL.
1576
1577         (vectorizable_reduction): Remove assert. 
1578
1579 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1580
1581         PR target/23485
1582         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
1583         (__moddi3): Likewise.
1584         (__udivdi3): Likewise.
1585         (__umoddi3): Likewise.
1586         (__divsi3): Likewise.
1587         (__modsi3): Likewise.
1588         (__udivsi3): Likewise.
1589         (__umodsi3): Likewise.
1590
1591 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
1592
1593         * tree-pass.h (TDF_GRAPH): Define.
1594         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
1595         * passes.c (finish_optimization_passes): Only call
1596         finish_graph_dump_file if TDF_GRAPH is set.
1597         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
1598         NULL.  Set TDF_GRAPH bit.
1599         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
1600
1601 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
1602
1603         * arm.h (arm_stack_offsets): Add locals_base field.
1604         * arm.c (arm_get_frame_offsets): Compute it.
1605         (thumb_compute_initial_elimination offset): Make the Thumb frame
1606         pointer point to the base of the local variables.
1607         (thumb_expand_prologue): Update accordingly.
1608         (thumb_expand_epilogue): Likewise.
1609
1610         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
1611         mode of clobbered scratch to DImode.  Handle a case that's known to
1612         need this.
1613
1614 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
1615
1616         * config/rs6000/rs6000.md (gt0<mode>): Delete.
1617         (gt0<mode>_compare): Delete.
1618         (neg_gt0<mode>): Delete.
1619
1620 2005-08-19  Eric Christopher  <echristo@apple.com>
1621
1622         * optabs.h: Change CTI_ to COI_.
1623         * optabs.c: Ditto.
1624
1625 2005-08-19  James E Wilson  <wilson@specifix.com>
1626
1627         * builtins.c (expand_builtin_return_addr): Set
1628         current_function_accesses_prior_frames when count != 0.  Use
1629         frame_pointer_rtx when count == 0.
1630         * function.h (struct function): Add accesses_prior_frames field.
1631         (current_function_accesses_prior_frames): Define.
1632         * reload1.c (init_elim_table): Check
1633         current_function_accesses_prior_frames.
1634         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
1635
1636 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1637
1638         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
1639         indicator.  Return true if the flowgraph changed during
1640         cleanup.
1641
1642 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1643
1644         PR 23476
1645         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
1646         conditional expression before testing its value.
1647
1648 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1649
1650         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
1651
1652 2005-08-19  Devang Patel  <dpatel@apple.com>
1653
1654         PR tree-optimization/23048
1655         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
1656         third parameter. Check whether latch is dominated by exit
1657         block or not.
1658         (if_convertible_loop_p): Supply exit block itself to
1659         if_convertible_bb_p.
1660
1661 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
1662
1663         PR target/23473
1664         * arm.md (arm_load_pic_register): Change argument to the mask of
1665         saved registers.  Call thumb_find_work_register if we need a
1666         scratch register on Thumb.
1667         (arm_expand_prologue): Pass empty register set to
1668         arm_load_pic_register.
1669         (thumb_expand_prologue): Pass live_regs_mask directly to
1670         arm_load_pic_register.
1671         * arm-protos.h (arm_load_pic_register): Update prototype.
1672
1673 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
1674
1675         * sh.c (find_sole_member): New function.
1676         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
1677         if the record's alignment is larger than the size of its only member.
1678
1679 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
1680
1681         PR target/23436
1682         * arm.c (thumb_legitimize_reload_address): New function.
1683         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
1684         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
1685
1686 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
1687
1688         * config/crx/crx.c: Implement crx_decompose_address. Reject
1689         symbolic displacements since CRX register relative adressing
1690         mode can't handle unsigned 32-bit values as displacements.
1691         * config/crx/crx.h: Simplify definitions, remove redundant
1692         parenthesis and obsolete macros.
1693         * config/crx/crx.opt: Add new switch for debugging addresses.
1694         * config/crx/crx-protos.h: Add new declarations for above.
1695
1696 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
1697
1698         PR middle-end/20624
1699         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
1700         looking past it.
1701
1702 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1703
1704         * collect2.c (dup2): Delete.
1705         * configure.ac: Don't check for dup2.
1706
1707         * config.in, configure: Regenerate.
1708
1709 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
1710
1711         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
1712         record with the type of its only member.
1713
1714 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
1715
1716         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
1717         define_insn_and_split.
1718         (plus_ltu<mode>_compare): Same.
1719         (gtu<mode>_compare): Same.
1720         (plus_gtu<mode>_compare): Same.
1721
1722 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
1723
1724         PR tree-optimization/22228
1725         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
1726         todo_flags_start.
1727         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
1728         are recorded in vect_vnames_to_rename for renaming.
1729         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
1730         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
1731         in vect_vnames_to_rename.
1732         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
1733         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
1734
1735 2005-08-18  Jan Hubicka  <jh@suse.cz>
1736
1737         PR c++/22034
1738         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
1739         info only for local statics, not for member variables.
1740
1741 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1742
1743         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
1744
1745 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1746
1747         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
1748
1749 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
1750
1751         PR middle-end/16045
1752         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
1753
1754 2005-08-17  James E Wilson  <wilson@specifix.com>
1755
1756         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1757         array size check.
1758
1759 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
1760
1761         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
1762         (leu<mode>_compare): Same.
1763         (plus_leu<mode>): Same.
1764         (neg_leu<mode>): Same.
1765         (and_neg_leu<mode): Same.
1766         (ltu<mode>_compare): Same.
1767         (plus_ltu<mode>): Same.
1768         (geu<mode>): Same.
1769         (geu<mode>_compare): Same.
1770         (plus_geu<mode>): Same.
1771         (neg_geu<mode>): Same.
1772         (and_neg_geu<mode>): Same.
1773         (plus_gt<mode>): Same.
1774         (gtu<mode>_compare): Same.
1775         (plus_gtu<mode>): Same.
1776
1777 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
1778
1779         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
1780         Move call_table_data to end.  Delete spurious .text.
1781         (callt_save_all_interrupt): Fix comment typo.
1782
1783 2005-08-17  James E Wilson  <wilson@specifix.com>
1784             Kevin Winchester  <winchester@amirix.com>
1785
1786         PR target/21684
1787         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
1788
1789 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
1790
1791         PR target/23268
1792         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
1793         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
1794
1795 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
1796
1797         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
1798         record with the type of its only member if the modes don't match.
1799
1800         * varasm.c (decode_reg_name): Skip empty additional register names.
1801
1802 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
1803
1804         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
1805         lsm_tmp_name_length): New.
1806         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
1807         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
1808
1809 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1810             Andreas Krebbel  <krebbel1@de.ibm.com>
1811
1812         * config.gcc: Added z9-109 switch.
1813         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
1814         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
1815         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
1816         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1817         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
1818         for "z9_109" cpu attribute.
1819         * config/s390/s390.c (z9_109_cost): New processor cost structure.
1820         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
1821         (s390_handle_arch_option): Added z9-109 switch.
1822         (override_options): Set respective cost function for z9-109.
1823         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
1824         (legitimate_reload_constant_p): Accept extended immediates.
1825         (print_operand): Three new output modifiers added: k, m and o.
1826         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
1827         (s390_output_mi_thunk): Use extended immediate when possible.
1828         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
1829         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
1830         (CONSTRAINT_LEN): Added length of O constraint.
1831         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
1832         * config/s390/s390.md ("cpu"): New value z9_109 added.
1833         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
1834         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
1835         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
1836         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
1837         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
1838         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
1839         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
1840         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
1841         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
1842         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
1843         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
1844         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
1845         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
1846         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
1847         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
1848         immediates.
1849         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
1850         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
1851         insns for TARGET_EXTIMM.
1852
1853 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1854
1855         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
1856
1857 2005-08-17  Nick Clifton  <nickc@redhat.com>
1858
1859         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
1860         Call default_encode_section_info.
1861
1862 2005-08-17  Steven Bosscher  <stevenb@suse.de>
1863
1864         PR tree-optimization/21574
1865         * tree-ssa-ccp.c (likely_value): If the right hand side is a
1866         constant, return CONSTANT.
1867         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
1868         (ccp_fold, visit_assignment): Likewise.
1869         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
1870
1871 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
1872
1873         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
1874         fold_buildN instead of buildN then fold_initializer or fold.
1875         (build_unary_op): Likewise.
1876         (build_binary_op): Likewise.
1877         * fold-const.c (fold_initializer): Remove.
1878         (fold_build1_initializer): New function.
1879         (fold_build2_initializer): New function.
1880         (fold_build3_initializer): New function.
1881         * tree.h (fold_initializer): Remove.
1882         (fold_build1_initializer): New function.
1883         (fold_build2_initializer): New function.
1884         (fold_build3_initializer): New function.
1885
1886 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
1887
1888         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
1889         (try_move_mult_to_index): Call fold_build2 instead of build2.
1890         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
1891         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
1892         fold_binary_to_constant.
1893         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
1894         fold (build.
1895         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
1896         check if A == gcd (A, B).  Remove TYPE argument.
1897         (analyze_offset) Use fold_build2 instead of fold (build.
1898         (create_data_ref): Likewise.
1899         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
1900         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
1901         then fold.
1902
1903 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
1904
1905         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
1906         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
1907
1908 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
1909
1910         PR tree-opt/23402
1911         * gimplify.c (zero_sized_type): New function.
1912         (gimplify_modify_expr_rhs): If we have a zero sized type,
1913         replace the statement with an empty statement.
1914
1915 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
1916
1917         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
1918         fxsave.
1919
1920 2005-08-16  Ian Lance Taylor  <ian@airs.com>
1921
1922         * doc/tm.texi (Label Output): Correct typo.
1923
1924 2005-08-16  Steven Bosscher  <stevenb@suse.de>
1925
1926         PR target/23376
1927         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
1928         force_operand will work later on using have_insn_for.
1929
1930 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1931
1932         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
1933
1934 2005-08-16  Ian Lance Taylor  <ian@airs.com>
1935
1936         PR c++/23337
1937         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
1938         vector type, don't try to construct it element by element.  Add an
1939         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
1940
1941 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1942
1943         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
1944
1945 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
1946
1947         * doc/invoke.texi (Precompiled Headers): Document some more options
1948         which are known to be safe.
1949
1950 2005-08-16  James E Wilson  <wilson@specifix.com>
1951
1952         PR tree-optimization/21105
1953         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1954         TREE_OVERFLOW check.
1955
1956 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
1957
1958         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
1959         (neg_ltu<mode>): Same.
1960         (gtu<mode>): Same.
1961         (neg_gtu<mode>): Same.
1962
1963 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1964
1965         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
1966         (fold_builtin_isdigit): Use fold_buildN.
1967         (build_function_call_expr): Likewise.
1968         * c-typeck.c (c_finish_loop): Likewise.
1969
1970 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
1971             Richard Shann <rshann@superh.com>
1972
1973         PR middle-end/20396:
1974         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
1975
1976 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
1977
1978         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
1979
1980 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
1981
1982         PR target/23355
1983         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
1984         arm_compure_save_reg0_reg12_mask to determine when the PIC register
1985         must be saved.
1986
1987 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1988
1989         PR middle-end/23369
1990         * fold-const.c (build_range_check): Disable optimization for function
1991         pointer expressions on targets that require function pointer
1992         canonicalization.
1993
1994 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
1995
1996         * simplify-rtx.c (simplify_const_relational_operation): When
1997         extracting arguments of a COMPARE, recompute the mode as well.
1998
1999 2005-08-15  Ian Lance Taylor  <ian@airs.com>
2000
2001         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
2002
2003 2005-08-15  DJ Delorie  <dj@redhat.com>
2004
2005         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
2006         the stack.
2007         (movsi_splittable): Allow, but split, moves to the stack.
2008         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
2009         stack.
2010
2011 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2012
2013         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
2014         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
2015         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
2016
2017         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
2018         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
2019         Delete HOST_PTR_PRINTF.
2020
2021         * configure, config.in: Regenerate.
2022
2023 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
2024
2025         * config/rs6000/rs6000.md (QHSI): New mode macro.
2026         (wd): Extend mode attr for QImode and HImode
2027         (dbits): New mode attr.
2028         (zero_extend<mode>di2): Convert to mode macro.
2029
2030 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
2031
2032         PR target/21841
2033         * doc/invoke.texi (-mgnu-ld): Update description.
2034         (-mhp-ld): Ditto.
2035
2036 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
2037
2038         PR 23391
2039         * Makefile.in (tree-chrec.o): Depends on real.h.
2040         * tree-chrec.c: Include real.h.
2041         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
2042         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
2043         * tree-scalar-evolution.c (add_to_evolution_1,
2044         interpret_rhs_modify_expr): Ditto.
2045
2046 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
2047
2048         PR 23386
2049         * tree-data-ref.c (estimate_niter_from_size_of_data): When
2050         step is negative compute the estimation from init downwards to zero.
2051
2052 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
2053
2054         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
2055
2056 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
2057
2058         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
2059         constraint.
2060         (legitimate_reload_constant_p): Fix handling of lliXX operands.
2061         Accept double-word constants that can be split.
2062         * config/s390/s390.md ("movti"): Use 'P' constraint.
2063         ("*movdi_31", "*movdf_31"): Likewise.
2064
2065 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
2066
2067         Fix PR tree-optimization/22615
2068
2069         * tree-ssa-structalias.c (solution_set_add): Handle
2070         first_vi_for_offset returning NULL.
2071         (do_da_constraint): Ditto.
2072         (do_sd_constraint): Ditto.
2073         (do_ds_constraint): Ditto
2074         (find_func_aliases): Ditto.
2075         (build_constraint_graph): RHS is allowed be ANYTHING.
2076         (first_vi_for_offset): Return NULL if we couldn't find anything at
2077         the offset.
2078
2079 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
2080
2081         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
2082         over memory as first operand.
2083
2084 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
2085
2086         PR target/23360
2087         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
2088         available for setting it.
2089
2090 2005-08-14  Ira Rosen  <irar@il.ibm.com>
2091
2092         PR tree-optimization/23320
2093         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
2094         data-refs' types instead of base object nullness. Add check for
2095         pointer type data-refs before first location comparison. Remove
2096         assert.
2097
2098 2005-08-14  Andreas Schwab  <schwab@suse.de>
2099
2100         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
2101
2102 2005-08-13  James E Wilson  <wilson@specifix.com>
2103
2104         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
2105         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
2106         -fstack-protector-all, --param ssp-buffer-size): Document.
2107         (-Wvariadic-macros): Alphabetize.
2108         (-fsched-stalled-insns-dep): Add missing 'f'.
2109
2110         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
2111         macros.
2112
2113 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
2114
2115         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
2116         or indirect address operand.
2117         (EXTRA_ADDRESS_CONSTRAINT): New.
2118         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
2119
2120 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
2121
2122         PR tree-optimization/22236
2123         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
2124         successors and predecessors.
2125         * tree-chrec.c (chrec_convert): Before converting, check that
2126         sequences don't wrap.
2127         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
2128         (analyze_array): Extern.
2129         (find_data_references_in_loop): Remove call to
2130         compute_estimated_nb_iterations.
2131         * tree-data-ref.h (analyze_array): Declared.
2132         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
2133         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
2134         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
2135         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
2136         condition.
2137         * tree-ssa-loop-ivcanon.c: Fix documentation.
2138         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
2139         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
2140         (infer_loop_bounds_from_undefined): New.
2141         (estimate_numbers_of_iterations_loop): Use
2142         infer_loop_bounds_from_undefined.
2143         (used_in_pointer_arithmetic_p): New.
2144         (scev_probably_wraps_p): Pass an extra parameter.  Call
2145         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
2146         (convert_step): Fix documentation.
2147         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
2148         Use initial_condition_in_loop_num and evolution_part_in_loop_num
2149         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
2150         scev_probably_wraps_p.
2151
2152 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
2153
2154         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
2155         (s390_register_info): Ignore clobbered_regs information for fixed
2156         registers, and only fixed registers.
2157         (s390_init_frame_layout): Remove redundant call.
2158
2159 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
2160
2161         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
2162         description of -Wold-style-casts.
2163
2164 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2165             Jakub Jelinek  <jakub@redhat.com>
2166
2167         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
2168         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
2169         * config/s390/s390.c (print_operand): New output modifier 'G' added.
2170         (get_thread_pointer): Renamed to s390_get_thread_pointer.
2171         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
2172         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
2173         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
2174         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
2175         ("stack_protect_set", "stack_protect_test"): New expanders.
2176         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
2177         "stack_protect_testdi"): New insn definitions.
2178
2179 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2180
2181         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
2182
2183 2005-08-12  Paul Brook  <paul@codesourcery.com>
2184
2185         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
2186
2187 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2188
2189         * config/s390/predicates.md (setmem_operand): New predicate.
2190         (shift_count_operand): Accept ANDs with special constants as
2191         operand.
2192         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
2193         with special constants.
2194         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
2195         shift_count_operand with setmem_operand.
2196
2197 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2198
2199         * config/s390/s390.c (s390_extract_part, s390_single_part):
2200         Type cast added.
2201         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
2202         (s390_output_mi_thunk): Don't use lg on 31 bit.
2203         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
2204         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
2205
2206 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2207
2208         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
2209         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
2210         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
2211         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
2212         with one of the new macros.
2213
2214 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2215
2216         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
2217         Don't set save_return_addr_p.
2218         (s390_register_info): Make clobbered_regs not depending on
2219         save_return_addr_p.
2220
2221 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2222
2223         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
2224         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
2225
2226 2005-08-11  James E. Wilson  <wilson@specifix.com>
2227
2228         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
2229
2230 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
2231
2232         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
2233         locations gathered by var-tracking in single entry loc_list
2234         over loc_descriptor_from_tree.
2235
2236         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
2237         pass it down to loc_descriptor.
2238         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
2239         (containing_function_has_frame_base): Move earlier in the file.
2240         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
2241         instead of always assuming fbreg can't be used.
2242
2243 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
2244
2245         * config/rs6000/altivec.md: Change constraint "m" to "Z".
2246         * config/rs6000/predicates.md (indexed_or_indirect_operand):
2247         Accept address wrapped in AND for Altivec.
2248         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2249         Strip AND wrapping offset address for Altivec.
2250
2251 2005-08-11  Richard Henderson  <rth@redhat.com>
2252
2253         PR middle-end/23312
2254         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
2255         before using TYPE_IS_SIZETYPE.
2256
2257 2005-08-11  Richard Henderson  <rth@redhat.com>
2258
2259         PR target/22225
2260         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
2261         insn types not present on ev4.
2262         (alphaev5_insn_pipe): Similarly.
2263
2264 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
2265
2266         PR target/23250
2267         * arm.c (arm_override_options): If the user has selected callee-super-
2268         interworking, then enable normal interworking.
2269
2270 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2271
2272         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
2273         redefinition.
2274
2275 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
2276
2277         * doc/rtl.texi: Fix two typos.
2278
2279 2005-08-11  Richard Guenther  <rguenther@suse.de>
2280
2281         PR target/23289
2282         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
2283         cases where we call to/from functions returning void.
2284
2285 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
2286
2287         PR c++/23225
2288         * tree.c (build_pointer_type_for_mode): Robustify.
2289
2290 2005-08-10  James E Wilson  <wilson@specifix.com>
2291
2292         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
2293         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
2294
2295         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
2296         "cum->".
2297
2298 2005-08-10  Eric Christopher  <echristo@apple.com>
2299
2300         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
2301         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
2302         V2DFmode.
2303
2304 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
2305
2306         PR target/21887
2307         * config/darwin.c (machopic_indirect_data_reference): Use a new register
2308         for the high part when generating dynamic-no-pic code.
2309
2310 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
2311
2312         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
2313         (x86_64-*-linux*): Likewise.
2314
2315         * config/i386/crtfastmath.c: New file.
2316         * config/i386/t-crtfm: Likewise.
2317
2318         * config/i386/linux.h (ENDFILE_SPEC): New.
2319         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
2320
2321         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
2322         crtfastmath.o.
2323
2324 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
2325
2326         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
2327         (vec_shl, vec_shr): Document new operations.
2328         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
2329
2330 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
2331
2332         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
2333         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
2334         change predicate to indexed_or_indirect_address.
2335
2336 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
2337
2338         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
2339         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
2340         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
2341         and __aeabi_uwrite8.
2342         * config/arm/unaligned-funcs.c: New file.
2343         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
2344
2345 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
2346
2347         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
2348         Add dump.
2349         * cfglayout.c (pass_insn_locators_initialize): Add dump.
2350         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
2351         Add dump.
2352         * except.c (pass_convert_to_eh_region_ranges): Add dump.
2353         * final.c (pass_shorten_branches): Add dump.
2354         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
2355         (pass_life): Rename dump.
2356         (rest_of_handle_flow2): Remove initial verify_flow_info.
2357         * function.c (pass_instantiate_virtual_regs): Add dump.
2358         * integrate.c (pass_initial_value_sets): Add dump.
2359         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
2360         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
2361         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
2362         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
2363         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
2364         gate_rtl_unrool_and_peel_loops): New.
2365         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
2366         rtl_doloop): Do not look at flags.
2367         * mode-switching.c (pass_mode_switching): Add dump.
2368         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
2369         pass_split_before_regstack): Add dump.
2370         * regmove.c (pass_stack_adjustments): Add dump.
2371         * tree-optimize.c (pass_fixup_cfg): Add dump.
2372
2373 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2374
2375         PR 23309
2376         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
2377         deciding which instruction sequence to use.
2378
2379 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
2380
2381         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
2382         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
2383
2384 2005-08-09  Richard Guenther  <rguenther@suse.de>
2385
2386         * c-common.c (builtin_function_2): Remove.
2387         (def_builtin_1): New function.
2388         (c_common_nodes_and_builtins): Use def_builtin_1 to
2389         build builtin functions.
2390
2391 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
2392
2393         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
2394         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
2395         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
2396         Visual DSP.
2397
2398 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
2399
2400         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
2401         fold_binary instead of fold_build2 since we don't care about the
2402         resulting tree.
2403         (loop_niter_by_eval): Likewise.
2404         (compare_trees): Likewise.
2405         (proved_non_wrapping_p): Likewise.
2406
2407 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
2408
2409         PR c/23161
2410         PR c/23165
2411         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
2412         if the if is really empty.
2413
2414 2005-08-09  Steven Bosscher  <stevenb@suse.de>
2415
2416         PR tree-optimization/23234
2417         * tree-ssa-math-opts.c (place_reciprocal): New enum.
2418         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
2419         argument of the new enum.
2420         (execute_cse_reciprocals): Add reciprocals for function arguments
2421         on the unique successor edge of the entry block.  Update other calls
2422         to execute_cse_reciprocals_1.
2423
2424 2005-08-08  Richard Henderson  <rth@redhat.com>
2425
2426         PR 22439
2427         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
2428
2429 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
2430
2431         * expr.c (write_complex_part): Return after handling MEM.
2432
2433 2005-08-08  Josh Conner  <jconner@apple.com>
2434
2435         PR rtl-optimization/23241
2436         * combine.c (simplify_comparison): Fix error in determining
2437         whether to lift a subreg from comparison.
2438
2439 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
2440
2441         PR target/18506
2442         * config/rs6000/altivec.md (vec_init<mode>): New.
2443         (vec_set<mode>): New.
2444         (vec_extract<mode>): New.
2445         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
2446         (rs6000_expand_vector_set): New.
2447         (rs6000_expand_vector_extract): New.
2448         (rs6000_legitimate_offset_address_p): Offset addresses are valid
2449         for Altivec modes before reload.
2450         (altivec_expand_vec_init_builtin): New.
2451         (get_element_number): New.
2452         (altivec_expand_vec_set_builtin): New.
2453         (altivec_expand_vec_ext_builtin): New.
2454         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
2455         builtins.
2456         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
2457         builtins.
2458         * config/rs6000/rs6000.h (rs6000_builtins): Add
2459         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
2460         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
2461         * config/rs6000/rs6000-protos.h: Declare new functions.
2462
2463 2005-08-08  Jan Hubicka  <jh@suse.cz>
2464
2465         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
2466         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
2467         * i386.md (movdi*): Use pic_32bit_operand.
2468         * predicates.md (pic_32bit_operand): New.
2469
2470 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2471
2472         PR c++/21166
2473         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
2474
2475 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
2476
2477         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
2478         (test_for_singularity): Use fold_build2.
2479
2480 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2481
2482         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
2483
2484 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
2485
2486         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
2487         (COMMON_ASM_OP) Define.
2488         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
2489         (ix86_encode_section_info): Likewise.
2490         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
2491         SUBTARGET_ENCODE_SECTION_INFO.
2492
2493 2005-08-06  Richard Henderson  <rth@redhat.com>
2494
2495         PR 21894
2496         * tree-nested.c (convert_local_reference): Save and restore val_only
2497         around component_ref and friends.  Clear walk_subtrees by default.
2498
2499 2005-08-06  Peter O'Gorman  <peter@pogma.com>
2500
2501         PR 21366
2502         * gcc.c (process_command): Check the argument to -b has a dash.
2503         * doc/invoke.texi: Update -b and -V docs.
2504
2505 2005-08-06  James E Wilson  <wilson@specifix.com>
2506
2507         * config/mips/cross64.h, config/mips/t-cross64: Delete.
2508
2509 2005-08-06  Michael Matz  <matz@suse.de>
2510
2511         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
2512         member only if only one insn is associated with the value.
2513
2514 2005-08-06  Nick Clifton  <nickc@redhat.com>
2515
2516         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
2517         New define.
2518         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
2519         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
2520         Check symbol flags instead of symbol name mangling.
2521         (xstormy16_asm_output_aligned_common): Likewise.  Also
2522         simplify code since the bss100_section cass is the only case
2523         where the below100 code will be triggered.
2524         (xstormy16_encode_section_info): Encode below100 attribute
2525         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
2526         the name.
2527         (xstormy16_strip_name_encoding): Delete - this function is no
2528         longer needed.
2529         (TARGET_STRIP_NAME_ENCODING): Undefine.
2530         * config/stormy16/stormy16-protos.h: Delete prototype for
2531         xstormy16_strip_name_encoding.
2532
2533 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
2534
2535         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
2536         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
2537         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
2538         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
2539         config/alpha/predicates.md, config/arc/arc.h,
2540         config/arm/arm.h, config/arm/ieee754-df.S,
2541         config/arm/ieee754-sf.S, config/bfin/bfin.c,
2542         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
2543         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
2544         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
2545         config/m68hc11/m68hc11.h, config/mips/mips.c,
2546         config/mips/mips.h, config/mips/openbsd.h,
2547         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
2548         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
2549         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
2550         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2551         config/sparc/linux.h, config/sparc/linux64.h,
2552         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
2553         doc/extend.texi, doc/gcov.texi, doc/install.texi,
2554         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
2555         typos.  Follow spelling conventions.
2556
2557 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
2558
2559         PR c/23113
2560         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
2561         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
2562         specially.  Check for side effects only for COND_EXPR.
2563         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
2564         return with TREE_NO_WARNING.
2565
2566 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
2567
2568         PR rtl-optimization/23233
2569         * loop.c (combine_movables): Require the modes to be the same.
2570         (move_movables): Remove handling of cases where the replacement
2571         had a different mode to the original.
2572
2573 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
2574
2575         PR tree-optimization/23128
2576         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
2577         subtraction wrap, and set TREE_OVERFLOW if they do.
2578
2579 2005-08-05  Richard Henderson  <rth@redhat.com>
2580
2581         PR 21728
2582         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
2583         FORCED_LABEL labels.
2584
2585 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
2586
2587         PR middle-end/23135
2588         * reload.c (find_reloads_subreg_address): Pass down TYPE
2589         unchanged.  Change all callers except find_reloads_toplev.
2590
2591 2005-08-05  Michael Matz  <matz@suse.de>
2592
2593         * genattrtab.c (current_alternative_string): Remove.
2594         (SIMPLIFY_ALTERNATIVE): Ditto.
2595         (attr_alt_bit_p): Ditto.
2596         (alternative_name): Make const char *.
2597         (evaluate_eq_attr): Remove use of above things.
2598         (simplify_test_exp): Ditto.
2599         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
2600         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
2601
2602 2005-08-04  James E Wilson  <wilson@specifix.com>
2603
2604         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
2605         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
2606         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
2607         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
2608         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
2609
2610 2005-08-04  Richard Henderson  <rth@redhat.com>
2611
2612         PR 21529
2613         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
2614         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
2615         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
2616         if we'd have to instantiate too many members.
2617
2618 2005-08-04  Richard Henderson  <rth@redhat.com>
2619
2620         PR 21291
2621         * tree-outof-ssa.c (coalesce_asm_operands): New.
2622         (coalesce_ssa_name): Use it.  Split out ...
2623         (coalesce_phi_operands, coalesce_result_decls): ... these.
2624
2625 2005-08-04  Paul Brook  <paul@codesourcery.com>
2626
2627         * read-rtl.c (read_quoted_string): Break if EOF.
2628
2629 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
2630
2631         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
2632         (fold_build2): Likewise.
2633         (fold_build3): Likewise.
2634         (fold_build1_stat): New function prototype.
2635         (fold_build2_stat): Likewise.
2636         (fold_build3_stat): Likewise.
2637         * fold-const.c (fold_build1): Rename to ..
2638         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
2639         through to build1_stat.
2640         (fold_build2): Rename to ..
2641         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
2642         through to build2_stat.
2643         (fold_build3): Rename to ..
2644         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
2645         through to build3_stat.
2646
2647 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
2648             Ian Lance Taylor  <ian@airs.com>
2649
2650         * function.c (assign_stack_local_1): Do not correct stack slot
2651         address if allocation size is smaller than mode size.
2652
2653 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
2654
2655         PR 22037
2656         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
2657         (tree_merge_blocks): Propagate anything allowed by
2658         may_propagate_copy.
2659         Clarify documentation.
2660         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
2661         SSA form, schedule an update if necessary.
2662
2663 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
2664
2665         * doc/install.texi (Binaries): Remove broken link to
2666         Sinix/Reliant Unix binaries.
2667
2668 2005-08-03  Richard Henderson  <rth@redhat.com>
2669
2670         PR 23221
2671         * function.c (stack_protect_epilogue): Export.
2672         * tree.h (stack_protect_epilogue): Declare.
2673         * calls.c (expand_call): Call it.
2674
2675 2005-08-03  Eric Christopher  <echristo@apple.com>
2676
2677         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
2678         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
2679         spec.
2680
2681 2005-08-04  Jan Hubicka  <jh@suse.cz>
2682
2683         * profile.c (branch_prob): Split edges with goto locus on them
2684         to get proper line counts.
2685         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
2686
2687 2005-08-03  Paul Brook  <paul@codesourcery.com>
2688
2689         * function.c (assign_parms): Round current_function_args_size
2690         to PARM_BOUNDARY, not STACK_BOUNDARY.
2691
2692 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
2693
2694         * config/i386/i386.c (x86_elf_aligned_common)
2695         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
2696
2697 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
2698
2699         PR tree-optimization/23157
2700         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
2701         before emitting them.
2702
2703 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2704
2705         PR tree-optimization/19899
2706         * Makefile.in (tree-scalar-evolution.o): Add real.h.
2707         * tree-scalar-evolution.c: Include real.h.
2708         (add_to_evolution): Build constant -1 of correct type.
2709
2710 2005-08-03  Jan Hubicka  <jh@suse.cz>
2711
2712         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
2713         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
2714         profile updating for complette unrolling.
2715         * loop-unroll.c (peel_loop_completely): Use it.
2716         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
2717         (tree_unroll_loops_completely): Disable code growing unrolling of cold
2718         loops.
2719
2720 2005-08-03  Paul Brook  <paul@codesourcery.com>
2721
2722         * combine.c (can_change_dest_mode): New function.
2723         (try_combine, simplify_set): Use it.
2724
2725 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
2726
2727         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
2728         TFmode to BLKmode.
2729
2730 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
2731
2732         * doc/install.texi (Specific): Adjust link to openavr.org.
2733         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
2734         (Binaries): Adjust HP-UX Porting Center link.
2735         (Binaries): Adjust Free Software Foundation ordering link.
2736
2737 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
2738
2739         * convert.c (convert_to_integer): Use fold_build1 instead of
2740         build1 when converting an integer to an integer.
2741
2742 2005-08-02  Richard Henderson  <rth@redhat.com>
2743
2744         * combine.c (combine_instructions): Don't use reg_equal/equiv
2745         results if the mode doesn't match.
2746
2747 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
2748
2749         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
2750         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
2751
2752 2005-08-02  Richard Henderson  <rth@redhat.com>
2753
2754         PR 23196
2755         * explow.c (memory_address): Remove special-case for
2756         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
2757
2758 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
2759
2760         PR 23164
2761         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
2762         number of calls to cleanup_tree_cfg_1.
2763
2764 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
2765
2766         * doc/invoke.texi: document file extensions .F90 and .F95
2767
2768 2005-08-02  Richard Guenther  <rguenther@suse.de>
2769
2770         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
2771         positive if its first argument is positive.
2772
2773 2005-08-02  Richard Guenther  <rguenther@suse.de>
2774
2775         PR tree-optimization/23177
2776         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
2777         on TMR_TAG.
2778
2779 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
2780
2781         PR tree-optimization/23129
2782         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
2783         varying for divisions with anti-ranges.
2784
2785 2005-08-02  Jan Hubicka  <jh@suse.cz>
2786
2787         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
2788         * tree-ssa-threadupdate.c (thread_block): Add it here.
2789
2790 2005-08-01  James E Wilson  <wilson@specifix.com>
2791
2792         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
2793         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
2794         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
2795         New.
2796         * config/mips/predicates.md (const_call_insn_operand): Add check for
2797         SYMBOL_REF_LONG_CALL_P.
2798         * doc/extend.texi (long_call): Document the new attribute.
2799
2800 2005-08-01  Ian Lance Taylor  <ian@airs.com>
2801             Richard Henderson  <rth@redhat.com>
2802
2803         * Makefile.in (RTL_BASE_H): Add real.h.
2804         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
2805         instead of memcpy.
2806         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
2807         directly.
2808         * rtl.c (rtl_check_failed_code_mode): New.
2809         * rtl.h (struct rtx_def): Add u.rv.
2810         (XCMWINT, XCNMPRV): New.
2811         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
2812         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
2813
2814 2005-08-01  Richard Henderson  <rth@redhat.com>
2815
2816         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
2817         with auto-inc codes.
2818
2819         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
2820
2821 2005-08-01  Jan Hubicka  <jh@suse.cz>
2822
2823         * i386-protos.h (asm_preferred_eh_data_format): Declare.
2824         * i386.c: Include dwarf2.h
2825         (asm_preferred_eh_data_format): New.
2826         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
2827
2828 2005-08-01  Ian Lance Taylor  <ian@airs.com>
2829
2830         * config/host-linux.c (linux_gt_pch_get_address): Add new name
2831         randomize_va_space for virtual address randomization control.
2832
2833 2005-08-01  Steven Bosscher  <stevenb@suse.de>
2834
2835         * common.opt (flag_ipa_cp): Put in right place to maintain
2836         alphabetic sort.
2837
2838 2005-08-01  Jan Hubicka  <jh@suse.cz>
2839
2840         * profile.c (compute_value_histograms): Fix thinko.
2841         * value-prof.c: Include toplev.h
2842         (check_counter): New function.
2843         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
2844         tree_mod_subtract_transform): Add sanity check.
2845
2846 2005-08-01  Richard Guenther  <rguenther@suse.de>
2847
2848         PR tree-optimization/23133
2849         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
2850         current functions parameter decls to find defs to cse
2851         reciprocals of.
2852
2853 2005-08-01  Richard Guenther  <rguenther@suse.de>
2854
2855         PR tree-optimization/23109
2856         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
2857         If trapping math is in effect, use post-dominator information
2858         to check if we'd in any case reach a trapping point before
2859         doing the reciprocal insertion.
2860         (execute_cse_reciprocals): Compute post-dominators, if necessary.
2861         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
2862         expressions are invariant only if trapping math is not in effect.
2863
2864 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
2865
2866         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
2867         cgraph_function_versioning): New declarations.
2868         * cgraphunit.c: Add include to ipa-prop.h.
2869         (update_call_expr, cgraph_copy_node_for_versioning,
2870         cgraph_function_versioning): New functions.
2871         * integrate.c (copy_decl_for_inlining): Remove.
2872         * ipa-prop.h (ipa_replace_map): New struct.
2873         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
2874         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
2875         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
2876         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
2877         ipcp_iterate_stage, ipcp_method_scale_print,
2878         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
2879         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
2880         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
2881         ipcp_update_bb_counts, ipcp_update_profiling,
2882         ipcp_update_edges_counts): New functions.
2883         (ipcp_method_cval_init): Remove restriction regarding local methods.
2884         (ipcp_init_stage): Add ipcp_method_compute_scale.
2885         (ipcp_insert_stage): Add versioning.
2886         (ipcp_structures_print): Add ipcp_method_scale_print.
2887         (ipcp_driver): Dump profiling info.
2888         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
2889         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
2890         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
2891         (struct inline_data): Add versioning_p, ipa_info, new fields.
2892         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
2893         declare_return_variable): Replace calls to copy_decl_for_inlining with
2894         copy_decl_for_dup.
2895         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
2896         versioning support.
2897         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
2898         Add argument VERSIONING.
2899         (copy_arguments_for_versioning, copy_static_chain,
2900         function_versionable_p, tree_versionable_function_p,
2901         tree_function_versioning, replace_ref_tree): New functions.
2902         * tree-inline.h: Include varray.h.
2903         (tree_versionable_function_p,  tree_function_versioning,
2904         tree copy_decl_for_dup): New declarations.
2905
2906 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
2907
2908         * ipa-cp.c: New file. Contains IPCP specific functionality.
2909         * ipa-prop.h: New file. Contains structures/definitions that can be
2910         used by several interprocedural data flow optimizations (and also IPCP).
2911         * ipa-prop.c: New file.
2912         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
2913         * common.opt: Add ipa-cp flag.
2914         * timevar.def: Add IPCP optimization.
2915         * tree-optimize.c (init_tree_optimization_passes): Schedule
2916         pass_ipa_cp.
2917         * tree-pass.h (pass_ipa_cp): Declare.
2918
2919 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
2920
2921         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
2922         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
2923         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
2924         config/i386/i386.c, config/mips/mips.h,
2925         config/rs6000/rs6000.h, config/sh/sh.c,
2926         config/stormy16/stormy16.c: Fix comment typos.
2927
2928 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
2929
2930         PR c/22311
2931         * c-typeck.c (build_binary_op): Use common_type wrapper on
2932         shortened types.
2933         (common_type): Update comment.
2934
2935 2005-07-31  Steven Bosscher  <stevenb@suse.de>
2936
2937         PR target/23095
2938         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
2939         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
2940         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
2941
2942 2005-07-31  Jan Hubicka  <jh@suse.cz>
2943
2944         * pretty-print.h (pp_widest_integer): New macro.
2945         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
2946         counts.
2947
2948 2005-07-31  Jan Hubicka  <jh@suse.cz>
2949
2950         * output.h (enum section_category): Export from varasm.c
2951         (categorize_decl_for_section): Likewise.
2952         * varasm.c (enum section_category): Kill.
2953         (categorize_decl_for_section): Make global.
2954         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
2955         Declare.
2956         * i386.c (ix86_section_threshold): New static variable.
2957         (ix86_in_large_data_p, ix86_encode_section_info,
2958         x86_64_elf_unique_section,
2959         x86_64_elf_select_section): New functions.
2960         (TARGET_ENCODE_SECTION_INFO): Define
2961         (override_options): Enable medium model for PIC.
2962         (ix86_expand_prologue): Expand gen_set_got_rex64.
2963         (legitimate_constant_p): Handle new UNSPECs.
2964         (legitimate_pic_address_disp_p): Likewise.
2965         (legitimize_pic_address): Lower MEDIUM model addressing.
2966         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
2967         (enum cmodel): Add MEDIUM_PIC.
2968         (SYMBOL_REF_FAR_ADDR_P): New macro.
2969         (SYMBOL_FLAG_FAR_ADDR): New flag.
2970         * i386.md (movdi): Support medium model.
2971         (set_got_rex64): New pattern.
2972         * i386.opt (mlarge-data-threshold): New flag.
2973         * predicates.md (zext_operand/sext_operand): Deal with medium model.
2974         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
2975         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
2976         TARGET_ASM_UNIQUE_SECTION): New.
2977
2978         * invoke.texi (-mlarge_data_threshold): Document
2979
2980 2005-07-31  Jan Hubicka  <jh@suse.cz>
2981
2982         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
2983         (coalesce_vars): Likewise.
2984         * tree-ssa-live.c (coalesce_cost): New.
2985         (build_tree_conflict_graph): Use coalesce_cost.
2986         * tree-ssa-live.h (coalesce_cost): Declare.
2987
2988 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
2989
2990         * arm.md (all peepholes for post-increment operations): Delete.
2991         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
2992         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
2993         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
2994         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
2995         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
2996
2997 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
2998
2999         * fold-const.c (tree_expr_nonnegative_p): Always return true for
3000         non-integral types.
3001
3002 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
3003
3004         PR target/22582
3005         * doc/invoke.texi: Document -rdynamic.
3006
3007 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
3008
3009         PR c/23143
3010         * c-parser.c (c_parser_parms_list_declarator): Call
3011         mark_forward_parm_decls.
3012         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
3013         decls with visibility structure.
3014
3015 2005-07-30  Paul Brook  <paul@codesourcery.com>
3016
3017         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
3018
3019 2005-07-30  Paul Brook  <paul@codesourcery.com>
3020
3021         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
3022         prototype.
3023         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
3024         value for mode.
3025         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
3026
3027 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
3028
3029         PR c/529
3030         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
3031         nested function declarators.
3032         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
3033         (grokparms): Call warn_if_shadowing for parameters used within the
3034         parameter list.
3035         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
3036         not used within the parameter list.
3037         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
3038
3039 2005-07-30  Jan Hubicka  <jh@suse.cz>
3040
3041         * expr.c (expand_expr_real_1): Do not load mem targets into register.
3042         * i386.c (ix86_fixup_binary_operands): Likewise.
3043         (ix86_expand_unary_operator): Likewise.
3044         (ix86_expand_fp_absneg_operator): Likewise.
3045         * optabs.c (expand_vec_cond_expr): Validate dest.
3046
3047 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
3048
3049         PR c/21720
3050         * real.c (real_from_string): Also set last bit if there is a
3051         nonzero hex digit beyond GCC's internal precision after ".".
3052
3053 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
3054
3055         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
3056         define_constants.  Change duplicate values to unassigned numbers.
3057         Change UNSPEC_SUBS to UNSPEC_VSUBS.
3058         (*altivec_vspltsf): New.
3059         (altivec_vperm_v4sf): Delete.
3060         (altivec_vperm_<mode>): Use mode macro V.
3061         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
3062         (altivec_predicate_v4sf): Delete.
3063         (altivec_predicate_<mode>): Use mode macro V.
3064         (*altivec_lvesfx): New.
3065         (*altivec_stvesfx): New.
3066         (vec_realign_load_v4sf): Delete.
3067         (vec_realign_load_<mode>): Use mode macro V.
3068         * config/rs6000/rs6000.c (generate_set_vrsave): Use
3069         UNSPECV_SET_VRSAVE.
3070
3071 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
3072
3073         PR bootstrap/23131
3074         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
3075         string.
3076         * configure: Regenerated.
3077
3078 2005-07-29  Paul Brook  <paul@codesourcery.com>
3079
3080         * doc/install.texi: Add link to GFortran binaries wiki page.
3081
3082 2005-07-29  David Ung  <davidu@mips.com>
3083
3084         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
3085         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
3086         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
3087         * config/mips/mips.md (cpu): Add 5kf name.
3088         (includes): Includes 5k.md.
3089         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
3090         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
3091         -march flag.
3092
3093 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
3094
3095         PR 22550
3096         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
3097         (cleanup_tree_cfg): ... here.
3098         Call cleanup_tree_cfg_1 until there are no more cleanups to
3099         do.
3100
3101 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
3102
3103         * tree-vrp.c (compare_range_with_value): Return true or false
3104         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
3105         EQ_EXPR respectively.
3106
3107 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
3108
3109         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
3110         Fix comment typos.
3111
3112 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
3113
3114         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
3115         (tree_ssa_dominator_optimize): Increment it.
3116         (dump_dominator_optimization_stats): Print it.
3117
3118 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
3119             Steven Bosscher  <stevenb@suse.de>
3120
3121         PR rtl-optimization/23117
3122         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
3123         when head == tail.  Tidy comment.
3124
3125 2005-07-28  Richard Henderson  <rth@redhat.com>
3126
3127         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
3128         * cselib.c (rtx_equal_for_cselib_p): Likewise.
3129         * jump.c (rtx_renumbered_equal_p): Likewise.
3130         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
3131         CONST_INT and CONST_DOUBLE.
3132         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
3133         * reload.c (operands_match_p): Special case CONST_INT and
3134         CONST_DOUBLE; check mode earlier.
3135
3136 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
3137
3138         PR c/22240
3139         * c-typeck.c (convert_for_assignment): Do not check
3140         DECL_IN_SYSTEM_HEADER on NULL fundecl.
3141
3142 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
3143
3144         PR c/22192
3145         * c-typeck.c (composite_type): Prefer constant size arrays to
3146         VLAs.
3147
3148 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
3149
3150         PR c/21720
3151         * real.c (real_from_string): Set last bit if there is a nonzero
3152         hex digit beyond GCC's internal precision.
3153
3154 2005-07-28  Richard Henderson  <rth@redhat.com>
3155
3156         PR rtl-opt/22619
3157         * cfgcleanup.c (try_forward_edges): Watch out for end of
3158         insn chain.
3159
3160 2005-07-28  James E Wilson  <wilson@specifixinc.com>
3161
3162         PR c/23106
3163         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
3164
3165 2005-07-28  Jan Hubicka  <jh@suse.cz>
3166
3167         * Makefile.in (rtl-profile.o): Kill all traces of it.
3168         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
3169         * coverage.h (rtl_coverage_counter_ref): Kill.
3170         * opts.c (flag_speculative_prefetching_set): Kill.
3171         (flag_loop_optimize_set): New.
3172         (common_handle_option): Disable loop optimizer when profiling;
3173         do not handle speculative prefetching.
3174         * passes.c (init_optimization_passes): Replace pass_profiling combo
3175         by branch_prob pass.
3176         * profile.c (compute_value_histograms): Update for simplified value
3177         profiles.
3178         (rtl_register_profile_hooks): Kill.
3179         (pass_profiling): Kill.
3180         (rest_of_handle_branch_prob): Do not profile.
3181         * toplev.c (process_options): Remove speculative prefetching.
3182         * toplev.h (flag_tree_based_profiling): Kill.
3183         * tree-profile.c (prepare_instrumented_value,
3184         tree_gen_interval_profiler, tree_gen_pow2_profiler,
3185         tree_gen_one_value_profiler, do_tree_profiling): Update for
3186         simplified datastructures.
3187         * value-prof.c: Add comment that speculative prefetching was dropped;
3188         update rest of file for simplified datastructures.
3189         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
3190         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
3191         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
3192         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
3193         rtl_mod_subtract, gen_speculative_prefetch,
3194         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
3195         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
3196         (gate_handle_value_profile_transformations,
3197         rest_of_handle_value_profile_transformations,
3198         pass_value_profile_transformations): Kill.
3199         * value-prof.h (histogram_value_t): Remove IL based unions.
3200         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
3201         rtl_profile_hooks): Remove hooks.
3202
3203         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
3204
3205         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
3206         (cgraph_clone_node): Likewise.
3207         * cgraph.h (cgraph_clone_edge): Update prototype.
3208         (cgraph_clone_node): Likewise.
3209         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
3210         cgraph_clone_node.
3211         (lookup_recursive_calls): Consider profile.
3212         (cgraph_decide_recursive_inlining): Fix updating; use new
3213         probability argument; use profile.
3214         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
3215         * tree-inline.c (copy_bb): Update clal of clone_edge.
3216         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
3217
3218         * invoke.texi (min-inline-recursive-probability): Document.
3219
3220 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
3221
3222         * doc/install.texi (Configuration): Update Valgrind homepage.
3223
3224 2005-07-28  Richard Henderson  <rth@redhat.com>
3225
3226         PR middle-end/21362
3227         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
3228         labels we want to delete.
3229         (cfg_layout_merge_blocks): Likewise.
3230
3231 2005-07-28  Richard Henderson  <rth@redhat.com>
3232
3233         PR target/17692
3234         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
3235         when expanding to nothing.
3236
3237 2005-07-28  Josh Conner  <jconner@apple.com>
3238
3239         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
3240         (cgraph_decide_inlining_of_small_functions): Likewise.
3241
3242 2005-07-28  Josh Conner  <jconner@apple.com>
3243
3244         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
3245         direction of badness if negative.
3246         (cgraph_default_inline_p): Add reason to parameters, and assign it
3247         a value.
3248         (cgraph_decide_inlining_of_small_functions): New parameter in call
3249         to cgraph_default_inline_p.
3250         (cgraph_decide_inlining_incrementally): Likewise.
3251         * cgraphunit.c (decide_is_function_needed): Likewise.
3252         * cgraph.h (cgraph_default_inline_p): Likewise.
3253
3254 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3255
3256         * builtins.c: Fix comment typo(s).
3257         * genautomata.c: Likewise.
3258         * gimplify.c: Likewise.
3259         * tree-dfa.c: Likewise.
3260         * tree-flow-inline.h: Likewise.
3261         * tree-into-ssa.c: Likewise.
3262         * tree-ssa-alias.c: Likewise.
3263         * tree-ssa-ccp.c: Likewise.
3264         * tree-ssa-copy.c: Likewise.
3265         * tree-ssa-dce.c: Likewise.
3266         * tree-ssa-dom.c: Likewise.
3267         * tree-ssa-operands.c: Likewise.
3268         * tree-tailcall.c: Likewise.
3269         * tree-vectorizer.c: Likewise.
3270         * tree-vrp.c: Likewise.
3271         * tree.c: Likewise.
3272
3273 2005-07-28  Jeff Law  <law@redhat.com>
3274
3275         * tree-vrp.c (test_for_singularity): Extracted from  ...
3276         (simplify_cond_using_ranges): Attempt to simplify a relational
3277         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
3278
3279 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
3280
3281         PR tree-optimization/22506
3282         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
3283         phis whose argument is constant.
3284
3285 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
3286
3287         PR rtl-optimization/18992
3288         Back out this patch:
3289           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3290           PR optimization/12142
3291           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
3292           uses of the register in the SET_SRC.  Remove unnecessary argument.
3293
3294         Replace it with this:
3295         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
3296         if flag_non_call_exceptions is set and the insn may trap, pass
3297         pc_rtx as dest for recursion.
3298         In SET_SRC part of SET case, if dest is already set, pass it down
3299         unchanged.
3300
3301 2005-07-28  Jan Hubicka  <jh@suse.cz>
3302
3303         * cfg.c (update_bb_profile_for_threading): Use RDIV.
3304         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
3305         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
3306         roundoff errors.
3307         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
3308         profile when available.
3309
3310 2005-07-28  Jan Beulich <jbeulich@novell.com>
3311
3312         * config/ia64/ia64.c (ia64_load_pair_ok): New.
3313         (ia64_print_operand): Describe and handle 'X'.
3314         (ia64_register_move_cost): Also handle FP_REGS.
3315         (ia64_preferred_reload_class): Likewise.
3316         (ia64_secondary_reload_class): Likewise.
3317         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
3318         it. Also check for ITANIUM_CLASS_FLDP.
3319         * config/ia64/ia64.h (FP_REGNO_P): New.
3320         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
3321         (reg_class): Add FP_REGS.
3322         (REG_CLASS_NAMES): Adjust for it.
3323         (REG_CLASS_CONTENTS): Likewise.
3324         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
3325         (REG_CLASS_FROM_LETTER): Handle 'x'.
3326         (CLASS_MAX_NREGS): Handle FP_REGS.
3327         (MEMORY_MOVE_COST): Likewise.
3328         * config/ia64/ia64.md (itanium_class): Add fldp.
3329         (type): Handle fldp.
3330         (movti_internal): More allowable operand combinations. Use ldfp8 when
3331         splitting unnecessary. Remove predicable attribute. Adjust
3332         itanium_class attribute.
3333         (smuldi3_highpart): Remove outdated comment.
3334         (mulditi3, umulditi3, rotlti3): New expanders.
3335         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
3336         (absti2): Disabled new insn for future reference.
3337         Respective new splitters.
3338         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
3339         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
3340         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
3341
3342 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
3343
3344         PR rtl-optimization/23047
3345         * simplify-rtx.c (simplify_const_relational_operation): Respect
3346         flag_wrapv for comparisons with ABS.
3347
3348 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
3349
3350         PR tree-optimization/22493
3351         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
3352         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
3353
3354 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
3355
3356         * config/frv/frv.opt (moptimize-membar): New.
3357
3358         * doc/invoke.texi: Document -moptimize-membar and its inverse.
3359
3360         * config/frv/frv.h: Remove machine_function definition.
3361
3362         * config/frv/frv.c (struct frv_io): New.
3363         (struct machine_function): Moved from frv.h.  Add has_membar_p.
3364         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
3365         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
3366         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
3367         (frv_optimize_membar_global, frv_optimize_membar): New functions.
3368         (frv_reorg): Call frv_optimize_membar when appropriate.
3369         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
3370         (frv_expand_builtin): Adjust calls accordingly.
3371         (frv_io_address_cookie): New function.
3372         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
3373         load or store rather than a special insn.  Add ccnstant address and
3374         io-type operands to the membar.
3375         (frv_ifcvt_modify_tests): Unsign regno.
3376         (frv_ifcvt_modify_tests): Same.
3377
3378         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
3379         UNSPEC_OPTIONAL_MEMBAR constant.
3380         (builtin_read_<mode>): Delete.
3381         (builtin_write_<mode>): Delete.
3382         ("optional_membar_<mode>"): Add operand.
3383
3384         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
3385         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
3386         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
3387         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
3388         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
3389         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
3390         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
3391         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
3392         * testsuite/gcc.target/frv/all-read-write-1.c: New.
3393
3394 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3395
3396         * df.c (df_uses_record): Handle SCRATCH.
3397
3398 2005-07-28  Steven Bosscher  <stevenb@suse.de>
3399
3400         PR debug/20161
3401         * passes.c (rest_of_decl_compilation): If decl is a type and
3402         we have encountered errors, don't emit debug information.
3403
3404 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
3405
3406         * params.def: Fixed comment.
3407
3408 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
3409
3410         PR target/19885
3411         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
3412         (TARGET_ASM_UNALIGNED_HI_OP): Add.
3413         (TARGET_ASM_UNALIGNED_SI_OP): Add.
3414
3415 2005-07-27  Steven Bosscher  <stevenb@suse.de>
3416
3417         PR c++/22003
3418         * varasm.c (assemble_start_function): Don't do anything that may
3419         require a CFG if the current function is a thunk.
3420
3421 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
3422
3423         * doc/install.texi (Prerequisites): Mention that perl is needed
3424         to do export control in libstdc++ targetting Darwin.
3425
3426 2005-07-27  Steven Bosscher  <stevenb@suse.de>
3427
3428         PR rtl-optimization/17808
3429         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
3430         (sched_insns_conditions_mutex_p): Split out from...
3431         (add_dependence): ...here.  But don't call it from here.
3432         (add_dependence_list): Check sched_insns_conditions_mutex_p
3433         before calling add_dependence.
3434         (add_dependence_list_and_free): Likewise.
3435         (fixup_sched_groups): Likewise.
3436         (sched_analyze_1): Likewise.
3437         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
3438         (sched_analyze): Likewise.
3439         (sched_analyze_insn): Likewise.
3440         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3441         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
3442         dependencies on all COND_EXEC insns to jumps ending basic blocks
3443         when doing intrablock scheduling.
3444         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
3445
3446 2005-07-27  Jeff Law  <law@redhat.com>
3447
3448         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
3449         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
3450         equivalency sets, correctly handle the case were vr0 has an
3451         equivalency set, but vr1 does not.
3452
3453 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
3454
3455         PR tree-optimization/23073
3456         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
3457         vect_print_dump_info before fprintf.
3458
3459 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
3460
3461         PR tree-optimize/22348
3462         * tree-ssa-loop-niter.c (number_of_iterations_cond):
3463         Fold the partial computation.
3464
3465 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
3466
3467         PR tree-optimization/22325
3468         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
3469         Declare.
3470         * tree-scalar-evolution.c (scev_const_prop): Add generic final
3471         value replacement.
3472         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
3473         (force_var_cost): ... this function.
3474         (compute_phi_arg_on_exit): Export.
3475
3476 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
3477
3478         PR tree-optimization/20773
3479         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
3480         edge.
3481
3482 2005-07-27  Richard Guenther  <rguenther@suse.de>
3483
3484         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
3485         Avoid pushing again if current struct contains only
3486         fields we decomposed.
3487
3488 2005-07-27  Jan Hubicka  <jh@suse.cz>
3489
3490         PR tree-optimization/22574
3491         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
3492         not available.
3493
3494         * tree-tailcall.c (decrease_profile): New function.
3495         (eliminate_tail_call): Use it.
3496
3497         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
3498         visibility flags correctly in whole program mode.
3499
3500 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
3501
3502         PR rtl-optimization/22472
3503         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
3504
3505 2005-07-26  Steven Bosscher  <stevenb@suse.de>