OSDN Git Service

* tree.c (annotate_with_file_line): Compare line numbers before
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2
3         * tree.c (annotate_with_file_line): Compare line numbers before
4         file names.
5
6 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
7
8         PR target/23816
9         * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
10         (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
11
12 2005-09-13  Ian Lance Taylor  <ian@airs.com>
13
14         * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
15         than a HOST_WIDEST_INT to gen_doloop_begin.
16
17 2005-09-13  Diego Novillo  <dnovillo@redhat.com>
18
19         * tree-dfa.c (dump_variable): Guard against NULL annotations.
20
21 2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>
22
23         PR tree-optimize/23817
24         * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
25
26 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
27
28         PR target/23774
29         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
30         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
31         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
32         (restore_stack_nonlocal): Likewise.
33         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
34
35 2005-09-12  Ian Lance Taylor  <ian@airs.com>
36
37         PR g++/7874
38         * c.opt (ffriend-injection): New C++ option.
39         * doc/invoke.texi (Option Summary): Mention -ffriend-injection.
40         (C++ Dialect Options): Document -ffriend-injection.
41
42 2005-09-12  Josh Conner  <jconner@apple.com>
43
44         PR middle-end/23237
45         * ipa-reference.c (static_execute): Don't mark variables in
46         named sections TREE_READONLY.
47
48 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
49
50         * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
51         stack_tie.
52
53 2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
54
55         * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and 
56         V_MUST_DEF instead of just the first_use_p.
57         Don't mark the virtual variables for renaming on the statement which 
58         is being removed.
59         (pass_dse): Remove TODO_update_ssa.
60
61 2005-09-12  J"orn Rennecke <joern.rennecke@st.com>
62
63         PR middle-end/23290
64         * stor-layout.c (compute_record_mode): For records with a single
65         field, actually check the field's mode size against the type size.
66
67         * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
68         registers for TARGET_SHMEDIA.
69         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
70         GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
71         of GENERAL_REGS and FP_REGS.
72
73 2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>
74
75         * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
76
77 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
78
79         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
80         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
81         are omitted.  Exclude stack_tie insn too.
82
83 2005-09-11  David Edelsohn  <edelsohn@gnu.org>
84
85         PR rtl-optimization/23098
86         * config/rs6000/predicates.md (easy_fp_constant): SFmode constant
87         0.0f is easy.
88         * config/rs6000/rs6000.md (movdf splitter): Use
89         const_double_operand predicate for TARGET_POWERPC64.
90         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
91         SYMBOL_REF method to ABI_V4.
92
93         * config/rs6000/altivec.md (build_vector_mask_for_load): Use
94         replace_equiv_address.
95         * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
96         rs6000_sr_alias_set and MEM_NOTRAP.
97         (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
98
99 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
100
101         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
102         handle CALL_EXPR again.
103
104 2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>
105
106         * arm/predicates.md (alignable_memory_operand): Delete.
107
108 2005-09-10  Richard Henderson  <rth@redhat.com>
109
110         PR debug/23806
111         * dbxout.c (dbxout_expand_expr): New.
112         (dbxout_symbol): Use it.
113
114 2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>
115
116         * arm.c (arm_gen_rotated_half_load): Delete.
117         (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
118         (emit_multi_reg_push, emit_sfm, arm_expand_prologue)
119         (thumb_set_return_address): Likewise.
120         (thumb_load_double_from_address): Use adjust_address.
121         * arm.md (splits calling arm_gen_rotated_half_load): Delete.
122         (extendhsisi2_mem, movhi_bytes): Use change_address.
123         (movhi): Use widen_memory_access.
124         (reload_out_df): Use replace_equiv_address.
125         * arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
126
127 2005-09-09  Richard Henderson  <rth@redhat.com>
128
129         PR debug/20998
130         * dbxout.c: Include expr.h.
131         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
132         (dbxout_symbol): Handle DECL_VALUE_EXPR.
133         * Makefile.in (dbxout.o): Add EXPR_H.
134
135 2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>
136
137         PR tree-optimization/23509
138         * tree-cfg.c (replace_uses_by): Use replace_exp.
139         * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
140         pointers have name_mem_tag or type_mem_tag set.
141
142 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
143
144         * tree-chrec.c (evolution_function_is_invariant_rec_p): Use 
145         CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
146         of wrongly accessing operands.
147
148 2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>
149
150         * Makefile.in (tree-chrec.o): Depends on SCEV_H.
151         * tree-chrec.c: Include tree-scalar-evolution.h.
152         (chrec_convert): Instantiate the base and step before calling
153         scev_probably_wraps_p that would fail on parametric evolutions.
154         Collect all the fails into a single section failed_to_convert,
155         print a diagnostic, and return chrec_dont_know instead of calling
156         fold_convert.
157         * tree-scalar-evolution.c (loop_closed_phi_def): New.
158         (instantiate_parameters_1): Avoid instantiation of loop closed ssa
159         phi nodes.
160         (scev_const_prop): Don't replace the definition of a loop closed ssa
161         phi node by itself, or by another loop closed ssa phi node.
162         * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
163         that base and step are defined.
164
165 2005-09-09  Richard Guenther  <rguenther@suse.de>
166
167         PR c++/23624
168         * fold-const.c (fold_ternary): Check truth_value_p before
169         calling invert_truthvalue.
170
171 2005-09-09  Nick Clifton  <nickc@redhat.com>
172
173         * Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
174         * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
175         dimension of these arrays.
176         * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
177         these arrays.
178         * longlong.h: Only provide a prototype for the __clz_tab[] array
179         if this header has not been included from libgcc2.h.
180         * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
181         defining own types.
182         Provide prototypes for exported functions.
183         Use the __clz_tab[] and __popcount_tab[] arrays provided by
184         libgcc2.c.
185
186 2005-09-08  Josh Conner  <jconner@apple.com>
187
188         PR c++/21135
189         PR c++/23180
190         * expr.c (expand_expr_addr_expr_1): Don't invoke
191         expand_simple_binop for EXPAND_INITIALIZER.
192
193 2005-09-08  Richard Henderson  <rth@redhat.com>
194
195         PR debug/23190
196         * toplev.c (wrapup_global_declaration_1): Split out ...
197         (wrapup_global_declaration_2): ... from ...
198         (wrapup_global_declarations): ... here.  Return bool.
199         (check_global_declaration_1): Split out ...
200         (check_global_declarations): from here.
201         (emit_debug_global_declarations): New.
202         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
203         check_global_declaration_1, emit_debug_global_declarations): Declare.
204         * c-decl.c (c_write_global_declarations_1): Don't create a vector
205         of decls.  Call wrapup_global_declaration_1,
206         wrapup_global_declaration_2, check_global_declaration_1 directly.
207         (c_write_global_declarations_2): New.
208         (ext_block): New.
209         (c_write_global_declarations): Call c_write_global_declarations_2.
210         * langhooks.c (write_global_declarations): Call
211         emit_debug_global_declarations.
212
213         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
214         remove decls that have DECL_RTL_SET_P.
215         * passes.c (rest_of_decl_compilation): Invoke
216         cgraph_varpool_finalize_decl for all but functions.
217
218 2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
219
220         * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
221         the result of a conversion if the new min and max cannot be compared.
222
223 2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>
224
225         * config/s390/s390.c (s390_sr_alias_set): Variable removed.
226         (override_options): Setting s390_sr_alias_set removed.
227         (save_fpr, save_gprs): Set alias set to vararg or frame.
228         (restore_fpr, restore_gprs, s390_emit_prologue): Replace 
229         s390_sr_alias_set with get_frame_alias_set ().
230         (s390_gimplify_va_arg): Replace s390_sr_alias_set with
231         get_varargs_alias_set ().
232
233 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
234
235         PR objc/20574
236         PR objc/19324
237         * c-parser.c (c_parser_objc_method_definition): If the next
238         token is not "{", error out and don't start the function.
239
240 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
241
242         * tree-vrp.c (extract_range_from_expr): Move the check for non
243         nullness after the check for gimple invariant.
244
245 2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
246
247         * tree.c (host_integerp, tree_low_cst): Correct function comment.
248
249 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
250
251         PR target/23747
252         * config/m32r.md (movmemsi_internal): Canonicalize order of
253         operands in PLUS component of template.
254
255 2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>
256
257         * reload1.c (fixup_eh_region_note): Remove assertion.
258         (fixup_abnormal_edges): Reverted removal of call to 
259         find_many_sub_basic_blocks made on 2005-08-31.
260
261 2005-09-07  Richard Henderson  <rth@redhat.com>
262
263         * function.c (ARG_POINTER_CFA_OFFSET): Move ...
264         * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
265         (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
266         * dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
267         rearrange for better packing.
268         (INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
269         (lookup_cfa_1): Remove inline marker.
270         (cfa_equal_p): Split out of ...
271         (def_cfa_1): ... here.  Use INVALID_REGNUM.
272         (build_cfa_loc): Handle !cfa->indirect.
273         (frame_pointer_cfa_offset): New.
274         (dbx_reg_number): Assert register elimination performed; do
275         leaf register remapping.
276         (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
277         (eliminate_reg_to_offset): New.
278         (based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
279         for verifiably local stack frame addresses; re-base to CFA.
280         (mem_loc_descriptor): Remove can_use_fbreg argument.
281         (concat_loc_descriptor, loc_descriptor): Likewise.
282         (containing_function_has_frame_base): Remove.
283         (rtl_for_decl_location): Don't do register elimination or
284         leaf register remapping here.
285         (secname_for_decl): Split out from ..
286         (add_location_or_const_value_attribute): ... here.
287         (convert_cfa_to_loc_list): New.
288         (compute_frame_pointer_to_cfa_displacement): New.
289         (gen_subprogram_die): Use them.
290         * tree.h (frame_base_decl): Remove.
291         * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
292         (prologue_stack_adjust): Remove.
293         (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
294         (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
295         (set_frame_base_location): Remove.
296         (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
297         (dump_attrs_list, dump_dataflow_set): Use string concatenation.
298         (vt_add_function_parameters): Don't eliminate_regs.
299         (vt_initialize): Don't create frame_base_decl.
300
301 2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
302
303         * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
304         version of GNU binutils for 4.x and later.
305
306 2005-09-06  Mark Mitchell  <mark@codesourcery.com>
307
308         * ggc-page.c (ggc_push_context): Remove.
309         (ggc_pop_context): Likewise.
310         * ggc.h (ggc_push_context): Remove.
311         (ggc_pop_context): Likewise.
312
313 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
314
315         PR target/8973
316         * config/arc/arc.c (arc_output_function_epilogue): Update flags while
317         returning from an interrupt handler.
318
319 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
320
321         PR target/8972
322         * config/arc/arc.c (output_shift): Add check for loop count when
323         optimizing.
324
325 2005-09-06  Steven Bosscher  <stevenb@suse.de>
326
327         * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
328         form manually.
329         (abs_replacement): Likewise.
330         (pass_phiopt): Remove TODO_update_ssa.
331
332 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
333
334         PR c/23075
335         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
336         if "return with no value, in function returning non-void" warning
337         has been issued.
338         * tree-cfg.c (execute_warn_function_return): Don't look at
339         RETURN_EXPRs with TREE_NO_WARNING set.
340
341         PR target/22362
342         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
343         for internal functions doesn't use registers used by global registers
344         variables.  Use fewer register parameters if there are global register
345         variables.
346
347 2005-09-06  Olivier Hainque  <hainque@adacore.com>
348             Eric Botcazou  <ebotcazou@adacore.com>
349
350         PR middle-end/14997
351         * expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
352         when we would be extracting outside its bit span (bitpos+bitsize
353         larger than its mode), possible with some VIEW_CONVERT_EXPRs from
354         Ada unchecked conversions.
355
356 2005-09-06  Steven Bosscher  <stevenb@suse.de>
357
358         * tree-ssa-pre.c (try_look_through_load): New function.
359         (compute_avail): Use it to try to look through loads for some
360         more useful expressions.
361
362 2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>
363
364         * simplify-rtx.c (simplify_binary_operation_1): Correct the 
365         condition for detecting cases like (a&a) and (a^a).
366
367 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
368
369         * common.opt: Add option ftree-vect-loop-version.
370         * params.def: Add --param vect-max-version-checks.
371         * doc/invoke.texi: Document ftree-vect-loop-version and
372         --param vect-max-version-checks.
373         * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
374         may_misalign_stmts and defines for accessors.
375         * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
376         LOOP_VINFO_MAY_MISALIGN_STMTS.
377         (destroy_loop_vec_info): VEC_free for
378         LOOP_VINFO_MAY_MISALIGN_STMTS.
379         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
380         Update documentation.
381         (vect_update_misalignment_for_peel): New.
382         (vect_enhance_data_refs_alignment): Update to choose loop
383         peeling or loop versioning if appropriate for the (potentially)
384         unaligned data references in the loop.
385         (vect_analyze_data_refs_alignment): Remove call to
386         vect_enhance_data_refs_alignment so the checks can be done
387         earlier.
388         (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
389         and move up call to vect_analyze_data_refs_alignment.
390         * tree-vect-transform.c (vect_create_cond_for_align_checks): New.
391         (vect_transform_loop): Add call to loop_version.
392
393 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
394
395         PR rtl-optimization/23098
396         * cse.c (fold_rtx_mem): Call delegitimize_address target hook.
397         * simplify-rtx.c (constant_pool_reference_p): New function.
398         * rtl.h (constant_pool_reference_p): New prototype.
399         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
400         constant_pool_reference_p in condition and
401         avoid_constant_pool_reference in preparation statements.
402
403 2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>
404
405         * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for 
406         STRICT_LOW_PART SETs.
407
408 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
409
410         PR middle-end/21460
411         * except.c (sjlj_emit_function_enter): Find the function begin
412         note even when it's not in first basic block.
413
414 2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>
415
416         * acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
417         AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
418         * aclocal.m4: Regenerate.
419
420 2005-09-05  DJ Delorie  <dj@redhat.com>
421
422         * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
423         of macro.
424
425 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
426
427         * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
428         config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
429         config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
430         Follow spelling conventions.
431         * doc/invoke.texi: Follow spelling conventions.
432
433 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
434
435         * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
436         * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
437         * builtins.c (expand_builtin_return_addr): Use gen_frame_mem.
438
439 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
440
441         PR target/23683
442         * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
443         (output_stack_adjust): Use gen_tmp_stack_mem.
444         (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
445         (sh_set_return_address, sh_allocate_initial_value): Likewise.
446         (sh_get_pr_initial_val): Likewise.
447         (sh_builtin_saveregs): Use gen_frame_mem and change_address.
448         (sh_initialize_trampoline): Likewise.  Also use adjust_address.
449         * sh.md (divsi_inv_m0): Use gen_const_mem.
450         (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
451         (movdf_i4+1): Use gen_tmp_stack_mem.
452         (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
453         (fpu_switch+2): Likewise.
454         (movv4sf_i, movv16sf_i): Use adjust_address.
455         (symGOT_load): Set MEM_NOTRAP_P bit.
456
457 2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
458
459         PR target/23721
460         * pa.c (emit_move_sequence): Fix typo in last change.
461
462 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
463
464         PR rtl-optimization/23454
465         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
466         is true.
467
468 2005-09-03  Richard Henderson  <rth@redhat.com>
469             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
470
471         PR middle-end/23671
472         * pa.c (emit_move_sequence): Use replace_equiv_address instead of
473         gen_rtx_MEM.
474
475 2005-09-02  Nicolas Pitre <nico@cam.org>
476
477         * config/arm/arm.c (arm_legitimize_address): Limit the value passed
478         to bit_count to 32 bits.
479
480 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
481
482         PR c++/23167
483         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
484         generating synthetic loads from volatile lvalues.
485
486 005-09-02  Nick Clifton  <nickc@redhat.com>
487
488         * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
489         __ctzhi2, __clzhi2): New functions.
490
491 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
492
493         PR middle-end/23547
494         * tree-nested.c (struct var_map_elt): Mark with GTY.
495         (struct nesting_info): Mark with GTY.  Mark var_map's param is struct
496         var_map_elt.
497         (lookup_field_for_decl): Allocate new element in GC memory.
498         (lookup_tramp_for_decl): Likewise.
499         (convert_nl_goto_reference): Likewise
500         (create_nesting_tree): Allocate info in GC memory. Likewise for
501         info->var_map.
502         (free_nesting_tree): Free with ggc_free instead of free.
503         (root): New static variable.
504         (lower_nested_functions): Remove root as local variable.  And zero out
505         root at the end of the function.
506
507 2005-09-02  J"orn Rennecke <joern.rennecke@st.com>
508
509         PR rtl-optimization/20365
510         * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
511         to short.  New member ix.
512         (simplify_plus_minus_op_data_cmp): Break ties using ix member.
513         (simplify_plus_minus): Initialize ix members before calling qsort.
514
515 2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>
516
517         PR tree-optimization/23626
518         * tree-cfg.c (replace_uses_by): Clean up eh info.
519
520 2005-09-01  DJ Delorie  <dj@redhat.com>
521
522         * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
523         fprintf.
524
525 2005-09-01  David Edelsohn  <edelsohn@gnu.org>
526
527         * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
528         (rs6000_split_multireg_move): Use replace_equiv_address instead of
529         gen_rtx_MEM.
530
531 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
532
533         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
534         do not issue warning for a variable definition following
535         a declaration.
536
537 2005-09-01  Richard Henderson  <rth@redhat.com>
538
539         PR 23668
540         * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
541         conversion to CONST_VECTOR.
542
543 2005-09-01  Richard Henderson  <rth@redhat.com>
544
545         PR 23676
546         * reload1.c (reload_as_needed): Check !CALL_P before calling
547         fixup_eh_region_note.
548         * rtlanal.c (may_trap_p): SUBREG by itself cannot trap.
549
550 2005-09-01  DJ Delorie  <dj@redhat.com>
551
552         * varasm.c (output_constant): Let the target resolve
553         conversions of addresses to non-default pointer sizes.
554
555 2005-09-01  Nicolas Pitre <nico@cam.org>
556
557         * config/arm/arm.c (arm_legitimize_address): Split absolute addresses
558         to alow matching ARM pre-indexed addressing mode.
559         (arm_override_options): Remove now irrelevant comment.
560
561 2005-09-01  Phil Edwards  <phil@codesourcery.com>
562
563         * config.gcc (i*86-wrs-vxworks):  Update.  Split out vxworksae target.
564         * config/i386/t-vxworks:  Update multilibs for VxWorks 6 and RTP mode.
565         * config/i386/vxworks.h:  Likewise.
566         * config/i386/t-vxworksae:  New file, for VxWorks AE.
567         * config/i386/vxworksae.h:  Likewise.
568
569 2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>
570
571         PR tree-optimization/23410
572         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
573         sequence is not wrapping during the first step.
574
575 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
576
577         PR debug/7241
578         * dwarf2out.c (base_type_die): Compare char_type_node with
579         TYPE_MAIN_VARIANT (type), not type.
580
581 2005-09-01  Richard Guenther  <rguenther@suse.de>
582
583         PR tree-optimization/15366
584         * common.opt: Add -finline-functions-called-once.
585         Put -fearly-inlining in alphabetically ordered place.
586         * doc/invoke.texi: Document new option.
587         * ipa-inline.c (cgraph_decide_inlining): Honour
588         flag_inline_functions_called_once.
589
590 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
591
592         PR rtl-optimization/23478
593         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
594         (alloc_qty): Initialize it.
595         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
596         (combine_regs): Combine also n_throwing_calls_crossed fields.
597         (find_free_reg): Don't attempt to caller-save pseudos crossing
598         calls that might throw.
599         * global.c (struct allocno): Add throwing_calls_crossed field.
600         (global_alloc): Revert 2005-08-22 change.  Initialize
601         throwing_calls_crossed.
602         (find_reg): Don't attempt to caller-save pseudos crossing calls that
603         might throw.
604
605 2005-09-01  Alan Modra  <amodra@bigpond.net.au>
606
607         PR target/23649
608         * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
609         (mask64_operand): Reinstate code prior to 2005-06-11 change.
610         (mask64_2_operand): Reinstate code prior to 2004-11-11 change.
611         (and64_2_operand): Tweak to use predicate.
612         (and_operand): Adjust for mask_operand changes.
613         * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
614         (print_operand): Likewise.
615         (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
616         (mask64_1or2_operand): Delete.
617         * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
618         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
619         (EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
620         (EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
621         * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
622         (rotldi3_internal4): Likewise.
623         (rotldi3_internal5, rotldi3_internal5 split): Likewise.
624         (rotldi3_internal6, rotldi3_internal6 split): Likewise.
625         (ashldi3_internal7): Likewise.
626         (ashldi3_internal8, ashldi3_internal8 split): Likewise.
627         (ashldi3_internal, ashldi3_internal9 split): Likewise.
628         (anddi3 split): Don't match mask64_operand.
629         (anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
630         (anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
631         splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
632         't' splitter predicate.
633         (movdi_internal64 + 2): Revert 2005-06-11 change.
634
635 2005-08-31  DJ Delorie  <dj@redhat.com>
636
637         * config/m32c/m32c.c (m32c_valid_pointer_mode): New.
638         (m32c_asm_integer): Add support for 32 bit pointers.
639
640 2005-08-31  Richard Henderson  <rth@redhat.com>
641
642         * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
643         component-like references for setting MEM_NOTRAP_P.
644
645         * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
646         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
647
648 2005-08-31  Richard Henderson  <rth@redhat.com>
649
650         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
651         into a pseudo before applying gen_lowpart.
652
653 2005-08-31  Geoffrey Keating  <geoffk@apple.com>
654
655         * doc/install.texi (Specific): Update cctools version required
656         for full functionality.
657         * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
658         linkers as -macosx_version_min.
659
660 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
661
662         PR target/21255
663         * sh.c (print_operand, %R and %S): Add handling of floating point
664         registers, memory, constants and invalid operands.
665
666 2005-08-31  Daniel Berlin  <dberlin@dberlin.org>
667
668         * ipa-pure-const.c: Change dump name.
669
670 2005-08-31 Uros Bizjak <uros@kss-loka.si>
671
672         PR target/23570
673         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
674         to "reg_or_0_operand".
675         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
676
677 2005-08-31  Dale Johannesen  <dalej@apple.com>
678
679         * loop-iv.c (iv_number_of_iterations):  Fix overflow check for
680         loops that count down.
681
682 2005-08-31  Richard Henderson  <rth@redhat.com>
683
684         PR rtl-opt/23601
685         * reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
686         (fixup_eh_region_note): New.
687         (reload_as_needed): Call it.
688         (fixup_abnormal_edges): Allow all throwing insns to be deleted;
689         don't call find_many_sub_basic_blocks; call verify_flow_info.
690         * function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
691         (keep_stack_depressed): Likewise.
692         (assign_stack_temp_for_type): Likewise; use adjust_address_nv.
693
694 2005-08-31  Richard Henderson  <rth@redhat.com>
695
696         * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
697         fp return matching.
698
699 2005-08-31  Fariborz Jahanian <fjahanian@apple.com>
700
701         * expr.c (expand_expr_real_1): Compare size of address 
702         mode to target's address mode size in deciding expansion of 
703         the constant address.
704
705 2005-08-31  Richard Guenther  <rguenther@suse.de>
706
707         PR middle-end/23477
708         * expr.c (all_zeros_p): New function.
709         (expand_expr_real_1): Handle the case of an all-zero
710         non-addressable constructor separately.
711
712 2005-08-31  Adrian Straetling  <straetling@de.ibm.com>
713
714         * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
715         arguments, adjust all callers.
716         (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.
717
718 2005-08-30  Richard Henderson  <rth@redhat.com>
719
720         PR target/23630
721         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
722         whenever the mode sizes match.
723
724 2005-08-31  Alan Modra  <amodra@bigpond.net.au>
725
726         * calls.c (load_register_parameters): Fix comment typo.
727         * expr.c (emit_push_insn): Comment formatting.
728
729 2005-08-30  Ian Lance Taylor  <ian@airs.com>
730
731         * config/i386/x-cygwin (host-cygwin): Change dependency from
732         hosthooks-def.h to $(HOSTHOOKS_DEF_H).
733
734 2005-08-29  Geoffrey Keating  <geoffk@apple.com>
735
736         * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
737         parts of 'vals'.
738
739 2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
740
741         PR middle-end/23408
742         * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
743         call to ggc_collect.
744
745 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
746
747         PR bootstrap/21268
748         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
749         beginning.  Remove $(INCLUDES) from all the rules, if following
750         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
751
752 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
753
754         PR middle-end/23484
755         * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
756         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
757         not constant, but maxlen is, don't set len to maxlen, rather
758         set maxlen to len if len is a constant.
759
760 2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>
761
762         PR tree-optimization/23475
763         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
764         and counts.
765
766 2005-08-28  Daniel Berlin  <dberlin@dberlin.org>
767
768         Fix PR middle-end/22455
769
770         * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
771         Checksum only the parts of the tree that exist for the tree code.
772
773 2005-08-28  Dale Johannesen  <dalej@apple.com>
774
775         * config/i386/i386.c (nocona_cost):  Increase MOVE_RATIO.
776
777 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
778
779         * tree-vrp.c: Remove obsolete comment in front of vrp_initialize.
780
781 2005-08-28  Richard Henderson  <rth@redhat.com>
782
783         * stor-layout.c (finalize_type_size): Revert workaround from 08-26.
784         * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
785         of char_type_node.
786
787 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
788
789         PR ada/23593
790         * builtins.c (get_memory_rtx): Don't strip nops
791         in between COMPONENT_REFs.
792
793 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
794
795         PR middle-end/23463
796         * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
797         types.
798         (gimplify_modify_expr): Check for zero sized types and gimplify the
799         rhs and lhs as statements.
800
801 2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
802
803         PR libgcj/23508
804         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
805         state for return address column of signal frames.
806
807 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
808
809         PR target/23539
810         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
811         bytes >= 2 not bytes == 2.
812         (expand_block_move): Same.
813
814 2005-08-27  Richard Guenther  <rguenther@suse.de>
815
816         PR target/23575
817         * config/i386/sse.md (sse2_movsd): Add missing closing
818         braces.
819
820 2005-08-27  Paul Brook  <paul@codesourcery.com>
821
822         * genrecog.c (enum decision_type): Add DT_num_insns.
823         (struct decision_test): Add u.num_insns.
824         (add_to_sequence): Add DT_num_insns test.
825         (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
826         (write_cond, debug_decision_2): Ditto.
827         (change_state): Assume peep2_next_insn never fails.
828         Remove "afterward" argument.
829         (write afterward, write_tree): Update to match.
830         * recog.c (peep2_current_count): New variable.
831         (peep2_next_insn): Check it.
832         (peephole2_optimize): Set peep2_current_count.
833         * recog.h (peep2_current_count): Declare.
834
835 2005-08-26  Josh Conner  <jconner@apple.com>
836
837         PR middle-end/23584
838         * ipa-pure-const.c (check_tree): Check for volatile-ness
839         when considering a dereference.
840
841 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
842
843         * rtl.h (MEM_IN_STRUCT_P): Fix comment typo.
844
845 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
846
847         PR rtl-optimization/23561
848         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
849         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
850         at most LEN bytes long memory fits into the field.
851         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
852         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
853         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
854
855 2005-08-26  Richard Henderson  <rth@redhat.com>
856
857         PR rtl-opt/23560
858         * loop.c (biased_biv_may_wrap_p): New.
859         (maybe_eliminate_biv_1): Use it to suppress non-equality
860         comparison transformations.  Delete disabled code.
861
862 2005-08-26  Ian Lance Taylor  <ian@airs.com>
863
864         * combine.c (make_extraction): Avoid reference outside object.
865
866 2005-08-26  J"orn Rennecke <joern.rennecke@st.com>
867
868         * stor-layout.c (finalize_type_size): Restore behaviour for
869         non-aggregate types to the status quo ante of the patch for
870         pr 23467.  Document why it matters.
871
872 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
873
874         PR c/23506
875         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
876         array by one element, initialize the BT_LAST element with NULL.
877
878 2005-08-26  David Edelsohn  <edelsohn@gnu.org>
879
880         * config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
881         optimizing for size.
882         (plus_eqsi): Same.
883         (compare_plus_eqsi): Same.
884         (plus_eqsi_compare): Same.
885         (neg_eq0<mode>): Same.
886         (neg_eq<mode>): Same.
887
888         * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
889         PROCESSOR_POWER4.
890
891 2005-08-26  Nick Clifton  <nickc@redhat.com>
892
893         * config/v850/v850.c (ep_memory_operand): Return FALSE if
894         TARGET_EP is not defined.
895         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
896         TARGET_EP is enabled.
897         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
898         * config/v850/v850.md (save_all_interrupt): Only use the EP
899         register if TARGET_EP is defined.
900         (restore_all_interrupt): Likewise.
901         * config/v850/lib1funcs.asm: Update functions so that the EP
902         register is only used if __EP__ is defined.
903
904 2005-08-26  David Ung  <davidu@mips.com>
905
906         * config/mips/mips.c (mips_expand_prologue): Handle case when
907         generating for MIPS16 and the outgoing argument area is more than
908         SMALL_OPERAND. Use the frame pointer as temporary to generate the
909         add instruction.
910
911 2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>
912
913         * config/crx/crx.md: Make doloop_end pattern usage controllable
914         via mloop-nesting=<max-nesting> command line switch. Make sure
915         the combiner cannot use doloop_end_<mode> in an illegal way.
916         * config/crx/crx.c: Use regs up to r6 for argument passing.
917         Refine crx_address_cost (non cst4 displacements are expensive).
918         * config/crx/crx.opt: Add switch for mloop-nesting=.
919
920 2005-08-26  Adrian Straetling  <straetling@de.ibm.com>
921
922         * config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
923         (UNSPEC_MVST): New constant.
924
925 2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>
926
927         * config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
928         Reject operands containing eliminable registers.
929         * testsuite/gcc.dg/20050825-1.c: New testcase.
930
931 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
932             Jan Hubicka  <jh@suse.cz>
933
934         * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.
935
936 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
937
938         PR tree-optimization/23546
939         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
940         and REAL_CST nodes.
941
942 2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>
943
944         * params.def (PARAM_MIN_SPEC_PROB): New.
945         * sched-rgn.c (MIN_PROBABILITY): Delete.
946         (compute_trg_info): Convert to PARAM_VALUE.
947         * doc/invoke.texi (param): Document min-spec-prob.
948
949 2005-08-24  Fariborz Jahanian <fjahanian@apple.com>
950
951         * config/darwin.h: define __PIC__
952         * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
953         TARGET_OS_CPP_BUILTINS macro.
954
955 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
956
957         * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
958         yesterday.
959
960 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
961
962         * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
963         to duplicate_block.
964         * cfghooks.c (duplicate_block): Added position where to place
965         new block as argument.
966         * cfghooks.h (duplicate_block): Declaration changed.
967         * cfglayout.c (copy_bbs): Add argument after.  Pass it to
968         duplicate_block.
969         * cfglayout.h (copy_bbs): Declaration changed.
970         * cfgloop.h (loop_version): Declaration changed.
971         * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
972         position to copy_bbs.
973         (loop_version): Pass position to duplicate_loop_to_header_edge.
974         Add place_after argument and position new blocks according to
975         it.
976         * modulo-sched.c (sms_schedule): Pass place_after argument
977         to loop_version.
978         * tracer.c (tail_duplicate): Pass argument to duplicate_block.
979         * tree-cfg.c (split_edge_bb_loc): New function.
980         (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
981         to determine position of new blocks.
982         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
983         to loop_version.
984         * tree-ssa-threadupdate.c (create_block_for_threading): Pass
985         argument to duplicate_block.
986         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
987         Pass position to copy_bbs.
988
989 2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>
990
991         * fold-const.c (ptr_difference_const): Use
992         cst_and_fits_in_hwi instead of host_integerp.
993
994 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
995
996         * config/darwin.c (gen_pic_offset): New.
997         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
998         Use it.
999
1000 2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>
1001
1002         PR tree-optimization/23486
1003         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.
1004
1005 2005-08-23  Phil Edwards  <phil@codesourcery.com>
1006
1007         * config.gcc (*-*-vxworks*):  Update tm_file, add extra_options,
1008         remove use_collect2.
1009         (powerpc-wrs-vxworks):  Update, split out *-*-vxworksae target.
1010
1011         * target-def.h (TARGET_HAVE_CTORS_DTORS):  Allow target
1012         configuration files to override the default value.
1013
1014         * config/t-vxworks:  Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
1015         EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
1016         * config/vx-common.h:  New file, split out from...
1017         * config/vxworks.h:  here.  Update for VxWorks 6.x and RTP mode.
1018         * config/vxworksae.h:  New file, for VxWorks AE.
1019         * config/vxworks.opt:  New file.
1020         * config/vxlib.c:  Update for VxWorks 6.
1021
1022         * config/rs6000/t-vxworks (MULTILIB_OPTIONS):  New list.  Adjust
1023         other MULTILIB_* variables appropriately.
1024         (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS):  Correct from t-ppccomm.
1025         * config/rs6000/t-vxworksae:  New file, adjust multilibs for AE.
1026         * config/rs6000/vxworks.h:  Update for VxWorks 6.
1027         * config/rs6000/vxworksae.h:  New file, mostly placeholder for now.
1028
1029 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
1030
1031         PR target/20799
1032         * config/darwin.c (machopic_select_section): Remove the hack to
1033         mark "::operator new" and "::operator delete" for coalescing
1034         even though they are not weak.
1035
1036 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
1037
1038         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
1039         * configure: Regenerate.
1040
1041 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
1042
1043         PR middle-end/23517
1044         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
1045         between vectors.
1046         * convert.c (convert_to_integer, convert_to_vector): Likewise.
1047         * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
1048         Likewise.
1049
1050 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
1051
1052         * config/rs6000/predicates.md (equality_operator): New.
1053         * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
1054         comparison with a large constant.
1055
1056 2005-08-23  Mark Mitchell  <mark@codesourcery.com>
1057
1058         * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.
1059
1060 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
1061
1062         * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
1063         registers is even, and we have a hardware double precision fp,
1064         align the buffer.
1065         (sh_gimplify_va_arg_expr): For floating point arguments, consider
1066         size of current argument when checking if argument was passed in
1067         registers.
1068
1069         * sh.c (sh_attr_renesas_p): Handle error_mark_node.
1070
1071         PR middle-end/23467
1072         * stor-layout.c (finalize_type_size): Dont override
1073         existing alignment with a smaller alignment from the mode.
1074
1075 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
1076
1077         * lambda-code.c (lambda_vector_lexico_pos): Moved...
1078         * lambda.h (lambda_vector_lexico_pos): ... here.
1079         * tree-data-ref.c (build_classic_dist_vector): Return false when
1080         the distance vector is lexicographically negative.
1081
1082 2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>
1083
1084         PR tree-optimization/23511
1085         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't 
1086         handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.
1087
1088 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
1089
1090         PR tree-optimization/22043
1091         * tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
1092         * expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
1093         If ALLOW_FLEXARR, handle types ending with flexible array member.
1094         Pass false as second argument to recursive count_type_elements calls.
1095         (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
1096         argument to count_type_elements call.
1097         * tree-sra.c (decide_block_copy): Likewise.
1098         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
1099         for a constant-sized object, set cleared as well.  Pass true as
1100         second argument to count_type_elements call.
1101
1102 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
1103
1104         PR target/21571
1105         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
1106         from legitimate_small_data_p, and make global.  Update use.
1107         Remove forward declaration.
1108         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
1109         Declare.
1110         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
1111
1112 2005-08-23  David Edelsohn  <edelsohn@gnu.org>
1113
1114         * config/rs6000/rs6000.md (eq<mode>): Use output operand instead
1115         of scratch intermediates.
1116         (eq<mode>_compare): Same.
1117         (neg_eq0<mode>): New.
1118         (neg_eq<mode>): Convert to define_insn_and_split.
1119
1120 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
1121
1122         PR target/23070
1123         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
1124         stdarg functions, set/clear the fp marker even when no variable
1125         args are passed.
1126         * config/rs6000/sysv4.opt (mprototype): Describe.
1127
1128 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
1129
1130         PR rtl-optimization/23478
1131         * regs.h (reg_info): Add throw_calls_crossed.
1132         (REG_N_THROWING_CALLS_CROSSED): Define.
1133         * flow.c (allocate_reg_life_data): Initialize
1134         REG_N_THROWING_CALLS_CROSSED.
1135         (propagate_one_insn, attempt_auto_inc): Update
1136         REG_N_THROWING_CALLS_CROSSED.
1137         * global.c (global_alloc): Don't allocate pseudos across
1138         calls that may throw.
1139
1140 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1141
1142         PR c/18715
1143         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
1144         value is inbetween the range if we did not find an exact match.
1145
1146 2005-08-22  Aldy Hernandez  <aldyh@redhat.com>
1147
1148         * doc/invoke.texi (Option Summary): Add ms1 options.
1149         * doc/extend.texi: Document interrupt handler attribute for ms1.
1150         * doc/md.texi: Document ms1 constraints.
1151         * config.gcc: Add ms1-*-elf.
1152         * config/ms1/ms1.h: New.
1153         * config/ms1/ms1.c: New.
1154         * config/ms1/ms1.md: New.
1155         * config/ms1/ms1-protos.h: New.
1156         * config/ms1/ABI.txt: New.
1157         * config/ms1/crti.asm: New.
1158         * config/ms1/crtn.asm: New.
1159         * config/ms1/lib2extra-funcs.c: New.
1160         * config/ms1/t-ms1: New.
1161         * config/ms1/ms1.opt: New.
1162
1163 2005-08-22 Ira Rosen <irar@il.ibm.com>
1164
1165         * config/rs6000/altivec.md (xorv4sf3): New.
1166         (negv4sf2, neg<mode>2): Likewise.
1167
1168 2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
1169
1170         PR target/23485
1171         * config/ia64/ia64.md (divsi3): Check divide by zero.
1172         (udivsi3): Likewise.
1173         (divdi3): Likewise.
1174         (udivdi3): Likewise.
1175
1176 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
1177
1178         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
1179         up to elem_bitsize bits, not max_bitsize.
1180
1181 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
1182
1183         PR tree-optimization/23433
1184         * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
1185         REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
1186
1187 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
1188
1189         PR tree-optimization/23434
1190         * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
1191         the iteration bound is not an INTEGER_CST.
1192
1193 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
1194
1195         * tree-vect-transform.c (get_initial_def_for_reduction): Set
1196         need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
1197         NULL if need_epilog_adjust is false.
1198         (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
1199         Case 3 always peels first itration, not just for PLUS case, and no need
1200         to use scalar_initial_def here. Create an epilog adjustment only if
1201         scalar_initial_def is not NULL.
1202
1203         (vectorizable_reduction): Remove assert. 
1204
1205 2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1206
1207         PR target/23485
1208         * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
1209         (__moddi3): Likewise.
1210         (__udivdi3): Likewise.
1211         (__umoddi3): Likewise.
1212         (__divsi3): Likewise.
1213         (__modsi3): Likewise.
1214         (__udivsi3): Likewise.
1215         (__umodsi3): Likewise.
1216
1217 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
1218
1219         * tree-pass.h (TDF_GRAPH): Define.
1220         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
1221         * passes.c (finish_optimization_passes): Only call
1222         finish_graph_dump_file if TDF_GRAPH is set.
1223         (execute_one_pass): Only call clean_graph_dump_file if dump_file !=
1224         NULL.  Set TDF_GRAPH bit.
1225         (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.
1226
1227 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
1228
1229         * arm.h (arm_stack_offsets): Add locals_base field.
1230         * arm.c (arm_get_frame_offsets): Compute it.
1231         (thumb_compute_initial_elimination offset): Make the Thumb frame
1232         pointer point to the base of the local variables.
1233         (thumb_expand_prologue): Update accordingly.
1234         (thumb_expand_epilogue): Likewise.
1235
1236         * arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
1237         mode of clobbered scratch to DImode.  Handle a case that's known to
1238         need this.
1239
1240 2005-08-19  David Edelsohn  <edelsohn@gnu.org>
1241
1242         * config/rs6000/rs6000.md (gt0<mode>): Delete.
1243         (gt0<mode>_compare): Delete.
1244         (neg_gt0<mode>): Delete.
1245
1246 2005-08-19  Eric Christopher  <echristo@apple.com>
1247
1248         * optabs.h: Change CTI_ to COI_.
1249         * optabs.c: Ditto.
1250
1251 2005-08-19  James E Wilson  <wilson@specifix.com>
1252
1253         * builtins.c (expand_builtin_return_addr): Set
1254         current_function_accesses_prior_frames when count != 0.  Use
1255         frame_pointer_rtx when count == 0.
1256         * function.h (struct function): Add accesses_prior_frames field.
1257         (current_function_accesses_prior_frames): Define.
1258         * reload1.c (init_elim_table): Check
1259         current_function_accesses_prior_frames.
1260         * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.
1261
1262 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1263
1264         * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
1265         indicator.  Return true if the flowgraph changed during
1266         cleanup.
1267
1268 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1269
1270         PR 23476
1271         * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
1272         conditional expression before testing its value.
1273
1274 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1275
1276         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
1277
1278 2005-08-19  Devang Patel  <dpatel@apple.com>
1279
1280         PR tree-optimization/23048
1281         * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
1282         third parameter. Check whether latch is dominated by exit
1283         block or not.
1284         (if_convertible_loop_p): Supply exit block itself to
1285         if_convertible_bb_p.
1286
1287 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
1288
1289         PR target/23473
1290         * arm.md (arm_load_pic_register): Change argument to the mask of
1291         saved registers.  Call thumb_find_work_register if we need a
1292         scratch register on Thumb.
1293         (arm_expand_prologue): Pass empty register set to
1294         arm_load_pic_register.
1295         (thumb_expand_prologue): Pass live_regs_mask directly to
1296         arm_load_pic_register.
1297         * arm-protos.h (arm_load_pic_register): Update prototype.
1298
1299 2005-08-19  J"orn Rennecke <joern.rennecke@st.com>
1300
1301         * sh.c (find_sole_member): New function.
1302         (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
1303         if the record's alignment is larger than the size of its only member.
1304
1305 2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>
1306
1307         PR target/23436
1308         * arm.c (thumb_legitimize_reload_address): New function.
1309         * arm-protos.h (thumb_legitimize_reload_address): Add prototype.
1310         * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.
1311
1312 2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>
1313
1314         * config/crx/crx.c: Implement crx_decompose_address. Reject
1315         symbolic displacements since CRX register relative adressing
1316         mode can't handle unsigned 32-bit values as displacements.
1317         * config/crx/crx.h: Simplify definitions, remove redundant
1318         parenthesis and obsolete macros.
1319         * config/crx/crx.opt: Add new switch for debugging addresses.
1320         * config/crx/crx-protos.h: Add new declarations for above.
1321
1322 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
1323
1324         PR middle-end/20624
1325         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
1326         looking past it.
1327
1328 2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1329
1330         * collect2.c (dup2): Delete.
1331         * configure.ac: Don't check for dup2.
1332
1333         * config.in, configure: Regenerate.
1334
1335 2005-08-18  J"orn Rennecke <joern.rennecke@st.com>
1336
1337         * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
1338         record with the type of its only member.
1339
1340 2005-08-18  David Edelsohn  <edelsohn@gnu.org>
1341
1342         * config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
1343         define_insn_and_split.
1344         (plus_ltu<mode>_compare): Same.
1345         (gtu<mode>_compare): Same.
1346         (plus_gtu<mode>_compare): Same.
1347
1348 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
1349
1350         PR tree-optimization/22228
1351         * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
1352         todo_flags_start.
1353         * tree-vect-transform.c (vect_transform_loop): Mark the variables that
1354         are recorded in vect_vnames_to_rename for renaming.
1355         * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
1356         (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
1357         in vect_vnames_to_rename.
1358         (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
1359         * tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
1360
1361 2005-08-18  Jan Hubicka  <jh@suse.cz>
1362
1363         PR c++/22034
1364         * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
1365         info only for local statics, not for member variables.
1366
1367 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1368
1369         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.
1370
1371 2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1372
1373         * c-typeck.c (designator_errorneous): Rename to designator_erroneous.
1374
1375 2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
1376
1377         PR middle-end/16045
1378         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
1379
1380 2005-08-17  James E Wilson  <wilson@specifix.com>
1381
1382         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1383         array size check.
1384
1385 2005-08-17  David Edelsohn  <edelsohn@gnu.org>
1386
1387         * config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
1388         (leu<mode>_compare): Same.
1389         (plus_leu<mode>): Same.
1390         (neg_leu<mode>): Same.
1391         (and_neg_leu<mode): Same.
1392         (ltu<mode>_compare): Same.
1393         (plus_ltu<mode>): Same.
1394         (geu<mode>): Same.
1395         (geu<mode>_compare): Same.
1396         (plus_geu<mode>): Same.
1397         (neg_geu<mode>): Same.
1398         (and_neg_geu<mode>): Same.
1399         (plus_gt<mode>): Same.
1400         (gtu<mode>_compare): Same.
1401         (plus_gtu<mode>): Same.
1402
1403 2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>
1404
1405         * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
1406         Move call_table_data to end.  Delete spurious .text.
1407         (callt_save_all_interrupt): Fix comment typo.
1408
1409 2005-08-17  James E Wilson  <wilson@specifix.com>
1410             Kevin Winchester  <winchester@amirix.com>
1411
1412         PR target/21684
1413         * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.
1414
1415 2005-08-17  Uros Bizjak  <uros@kss-loka.si>
1416
1417         PR target/23268
1418         * config/i386/i386.md ("*fist<mode>2_1"): New pattern.
1419         ("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.
1420
1421 2005-08-17  J"orn Rennecke <joern.rennecke@st.com>
1422
1423         * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
1424         record with the type of its only member if the modes don't match.
1425
1426         * varasm.c (decode_reg_name): Skip empty additional register names.
1427
1428 2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>
1429
1430         * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
1431         lsm_tmp_name_length): New.
1432         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
1433         (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".
1434
1435 2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1436             Andreas Krebbel  <krebbel1@de.ibm.com>
1437
1438         * config.gcc: Added z9-109 switch.
1439         * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
1440         "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
1441         "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
1442         "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1443         "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
1444         for "z9_109" cpu attribute.
1445         * config/s390/s390.c (z9_109_cost): New processor cost structure.
1446         (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
1447         (s390_handle_arch_option): Added z9-109 switch.
1448         (override_options): Set respective cost function for z9-109.
1449         (s390_const_ok_for_constraint_p): New constraints Os, Op, On.
1450         (legitimate_reload_constant_p): Accept extended immediates.
1451         (print_operand): Three new output modifiers added: k, m and o.
1452         (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
1453         (s390_output_mi_thunk): Use extended immediate when possible.
1454         * config/s390/s390.h (processor_flags): Added PF_EXTIMM.
1455         (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
1456         (CONSTRAINT_LEN): Added length of O constraint.
1457         (CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
1458         * config/s390/s390.md ("cpu"): New value z9_109 added.
1459         ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
1460         "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
1461         "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
1462         "*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
1463         "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
1464         ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
1465         "*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
1466         "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
1467         ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
1468         "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
1469         "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
1470         "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
1471         "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
1472         "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
1473         "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
1474         immediates.
1475         ("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
1476         "zero_extend<mode>si2"): Allow memory operands and don't manually emit
1477         insns for TARGET_EXTIMM.
1478
1479 2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1480
1481         * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.
1482
1483 2005-08-17  Nick Clifton  <nickc@redhat.com>
1484
1485         * config/stormy16/stormy16.c (xstormy16_encode_section_info):
1486         Call default_encode_section_info.
1487
1488 2005-08-17  Steven Bosscher  <stevenb@suse.de>
1489
1490         PR tree-optimization/21574
1491         * tree-ssa-ccp.c (likely_value): If the right hand side is a
1492         constant, return CONSTANT.
1493         (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
1494         (ccp_fold, visit_assignment): Likewise.
1495         (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
1496
1497 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
1498
1499         * c-typeck.c (build_function_call): Call fold_buildN_initializer or
1500         fold_buildN instead of buildN then fold_initializer or fold.
1501         (build_unary_op): Likewise.
1502         (build_binary_op): Likewise.
1503         * fold-const.c (fold_initializer): Remove.
1504         (fold_build1_initializer): New function.
1505         (fold_build2_initializer): New function.
1506         (fold_build3_initializer): New function.
1507         * tree.h (fold_initializer): Remove.
1508         (fold_build1_initializer): New function.
1509         (fold_build2_initializer): New function.
1510         (fold_build3_initializer): New function.
1511
1512 2005-08-16  James A. Morrison  <phython@gcc.gnu.org>
1513
1514         * fold-const.c (optimize_bit_field_compare): Remove extra fold call.
1515         (try_move_mult_to_index): Call fold_build2 instead of build2.
1516         (fold_binary): Don't call fold after calls to try_move_mult_to_index.
1517         * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
1518         fold_binary_to_constant.
1519         (infer_loop_bounds_from_undefined): Call fold_build2 instead of
1520         fold (build.
1521         * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
1522         check if A == gcd (A, B).  Remove TYPE argument.
1523         (analyze_offset) Use fold_build2 instead of fold (build.
1524         (create_data_ref): Likewise.
1525         (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
1526         * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
1527         then fold.
1528
1529 2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>
1530
1531         * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
1532         ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.
1533
1534 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
1535
1536         PR tree-opt/23402
1537         * gimplify.c (zero_sized_type): New function.
1538         (gimplify_modify_expr_rhs): If we have a zero sized type,
1539         replace the statement with an empty statement.
1540
1541 2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>
1542
1543         * config/i386/crtfastmath.c (set_fast_math): Add "=m" for
1544         fxsave.
1545
1546 2005-08-16  Ian Lance Taylor  <ian@airs.com>
1547
1548         * doc/tm.texi (Label Output): Correct typo.
1549
1550 2005-08-16  Steven Bosscher  <stevenb@suse.de>
1551
1552         PR target/23376
1553         * loop-unroll.c (analyze_insn_to_expand_var): Make sure that
1554         force_operand will work later on using have_insn_for.
1555
1556 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1557
1558         * fold-const.c (tree_expr_nonnegative_p): Regroup cases.
1559
1560 2005-08-16  Ian Lance Taylor  <ian@airs.com>
1561
1562         PR c++/23337
1563         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
1564         vector type, don't try to construct it element by element.  Add an
1565         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
1566
1567 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1568
1569         * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.
1570
1571 2005-08-16  Geoffrey Keating  <geoffk@apple.com>
1572
1573         * doc/invoke.texi (Precompiled Headers): Document some more options
1574         which are known to be safe.
1575
1576 2005-08-16  James E Wilson  <wilson@specifix.com>
1577
1578         PR tree-optimization/21105
1579         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1580         TREE_OVERFLOW check.
1581
1582 2005-08-16  David Edelsohn  <edelsohn@gnu.org>
1583
1584         * config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
1585         (neg_ltu<mode>): Same.
1586         (gtu<mode>): Same.
1587         (neg_gtu<mode>): Same.
1588
1589 2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1590
1591         * builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
1592         (fold_builtin_isdigit): Use fold_buildN.
1593         (build_function_call_expr): Likewise.
1594         * c-typeck.c (c_finish_loop): Likewise.
1595
1596 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
1597             Richard Shann <rshann@superh.com>
1598
1599         PR middle-end/20396:
1600         * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
1601
1602 2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>
1603
1604         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.
1605
1606 2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>
1607
1608         PR target/23355
1609         * arm.c (thumb_compute_save_reg_mask): Use similar logic to
1610         arm_compure_save_reg0_reg12_mask to determine when the PIC register
1611         must be saved.
1612
1613 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1614
1615         PR middle-end/23369
1616         * fold-const.c (build_range_check): Disable optimization for function
1617         pointer expressions on targets that require function pointer
1618         canonicalization.
1619
1620 2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>
1621
1622         * simplify-rtx.c (simplify_const_relational_operation): When
1623         extracting arguments of a COMPARE, recompute the mode as well.
1624
1625 2005-08-15  Ian Lance Taylor  <ian@airs.com>
1626
1627         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
1628
1629 2005-08-15  DJ Delorie  <dj@redhat.com>
1630
1631         * config/m32c/mov.md (movqi_op): Immediates can't be moved to
1632         the stack.
1633         (movsi_splittable): Allow, but split, moves to the stack.
1634         * config/m32c/m32c.c (m32c_split_move): Always split moves to the
1635         stack.
1636
1637 2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1638
1639         * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
1640         * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
1641         * system.h (HOST_PTR_PRINTF): Don't define, poison it.
1642
1643         * bitmap.c, c-decl.c, config/i386/i386-interix.h,
1644         config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
1645         Delete HOST_PTR_PRINTF.
1646
1647         * configure, config.in: Regenerate.
1648
1649 2005-08-15  David Edelsohn  <edelsohn@gnu.org>
1650
1651         * config/rs6000/rs6000.md (QHSI): New mode macro.
1652         (wd): Extend mode attr for QImode and HImode
1653         (dbits): New mode attr.
1654         (zero_extend<mode>di2): Convert to mode macro.
1655
1656 2005-08-15  Steve Ellcey  <sje@cup.hp.com>
1657
1658         PR target/21841
1659         * doc/invoke.texi (-mgnu-ld): Update description.
1660         (-mhp-ld): Ditto.
1661
1662 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
1663
1664         PR 23391
1665         * Makefile.in (tree-chrec.o): Depends on real.h.
1666         * tree-chrec.c: Include real.h.
1667         (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
1668         chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
1669         * tree-scalar-evolution.c (add_to_evolution_1,
1670         interpret_rhs_modify_expr): Ditto.
1671
1672 2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>
1673
1674         PR 23386
1675         * tree-data-ref.c (estimate_niter_from_size_of_data): When
1676         step is negative compute the estimation from init downwards to zero.
1677
1678 2005-08-14  James A. Morrison  <phython@gcc.gnu.org>
1679
1680         * fold-const (fold_binary): Call fold_build2 instead of fold (build.
1681
1682 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
1683
1684         * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
1685         constraint.
1686         (legitimate_reload_constant_p): Fix handling of lliXX operands.
1687         Accept double-word constants that can be split.
1688         * config/s390/s390.md ("movti"): Use 'P' constraint.
1689         ("*movdi_31", "*movdf_31"): Likewise.
1690
1691 2005-08-14  Daniel Berlin  <dberlin@dberlin.org>
1692
1693         Fix PR tree-optimization/22615
1694
1695         * tree-ssa-structalias.c (solution_set_add): Handle
1696         first_vi_for_offset returning NULL.
1697         (do_da_constraint): Ditto.
1698         (do_sd_constraint): Ditto.
1699         (do_ds_constraint): Ditto
1700         (find_func_aliases): Ditto.
1701         (build_constraint_graph): RHS is allowed be ANYTHING.
1702         (first_vi_for_offset): Return NULL if we couldn't find anything at
1703         the offset.
1704
1705 2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>
1706
1707         * config/s390/s390.c (s390_canonicalize_comparison): Prefer register
1708         over memory as first operand.
1709
1710 2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>
1711
1712         PR target/23360
1713         * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
1714         available for setting it.
1715
1716 2005-08-14  Ira Rosen  <irar@il.ibm.com>
1717
1718         PR tree-optimization/23320
1719         * tree-data-ref.c (base_addr_differ_p): Add comment. Check
1720         data-refs' types instead of base object nullness. Add check for
1721         pointer type data-refs before first location comparison. Remove
1722         assert.
1723
1724 2005-08-14  Andreas Schwab  <schwab@suse.de>
1725
1726         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
1727
1728 2005-08-13  James E Wilson  <wilson@specifix.com>
1729
1730         * doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
1731         * doc/invoke.texi (-Wstack-protector, -fstack-protector,
1732         -fstack-protector-all, --param ssp-buffer-size): Document.
1733         (-Wvariadic-macros): Alphabetize.
1734         (-fsched-stalled-insns-dep): Add missing 'f'.
1735
1736         * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
1737         macros.
1738
1739 2005-08-13  David Edelsohn  <edelsohn@gnu.org>
1740
1741         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
1742         or indirect address operand.
1743         (EXTRA_ADDRESS_CONSTRAINT): New.
1744         * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".
1745
1746 2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>
1747
1748         PR tree-optimization/22236
1749         * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
1750         successors and predecessors.
1751         * tree-chrec.c (chrec_convert): Before converting, check that
1752         sequences don't wrap.
1753         * tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
1754         (analyze_array): Extern.
1755         (find_data_references_in_loop): Remove call to
1756         compute_estimated_nb_iterations.
1757         * tree-data-ref.h (analyze_array): Declared.
1758         * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
1759         single_ssa_def_operand, zero_ssa_operands): Fix documentation.
1760         * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
1761         * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
1762         condition.
1763         * tree-ssa-loop-ivcanon.c: Fix documentation.
1764         * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
1765         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
1766         (infer_loop_bounds_from_undefined): New.
1767         (estimate_numbers_of_iterations_loop): Use
1768         infer_loop_bounds_from_undefined.
1769         (used_in_pointer_arithmetic_p): New.
1770         (scev_probably_wraps_p): Pass an extra parameter.  Call
1771         used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
1772         (convert_step): Fix documentation.
1773         * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
1774         Use initial_condition_in_loop_num and evolution_part_in_loop_num
1775         instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
1776         scev_probably_wraps_p.
1777
1778 2005-08-13  Ulrich Weigand  <uweigand@de.ibm.com>
1779
1780         * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
1781         (s390_register_info): Ignore clobbered_regs information for fixed
1782         registers, and only fixed registers.
1783         (s390_init_frame_layout): Remove redundant call.
1784
1785 2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>
1786
1787         * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
1788         description of -Wold-style-casts.
1789
1790 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1791             Jakub Jelinek  <jakub@redhat.com>
1792
1793         * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
1794         * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
1795         * config/s390/s390.c (print_operand): New output modifier 'G' added.
1796         (get_thread_pointer): Renamed to s390_get_thread_pointer.
1797         * config/s390/s390.md (stack_protect_set, stack_protect_test): If
1798         TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
1799         (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
1800         (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
1801         ("stack_protect_set", "stack_protect_test"): New expanders.
1802         ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
1803         "stack_protect_testdi"): New insn definitions.
1804
1805 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1806
1807         * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.
1808
1809 2005-08-12  Paul Brook  <paul@codesourcery.com>
1810
1811         * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.
1812
1813 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1814
1815         * config/s390/predicates.md (setmem_operand): New predicate.
1816         (shift_count_operand): Accept ANDs with special constants as
1817         operand.
1818         * config/s390/s390.c (print_shift_count_operand): Skip ANDs
1819         with special constants.
1820         * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
1821         shift_count_operand with setmem_operand.
1822
1823 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1824
1825         * config/s390/s390.c (s390_extract_part, s390_single_part):
1826         Type cast added.
1827         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
1828         (s390_output_mi_thunk): Don't use lg on 31 bit.
1829         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
1830         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
1831
1832 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1833
1834         * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
1835         (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
1836         s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
1837         s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
1838         with one of the new macros.
1839
1840 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1841
1842         * config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
1843         Don't set save_return_addr_p.
1844         (s390_register_info): Make clobbered_regs not depending on
1845         save_return_addr_p.
1846
1847 2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1848
1849         * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
1850         (LINK_COMMAND_SPEC): Add space after %(link_ssp).
1851
1852 2005-08-11  James E. Wilson  <wilson@specifix.com>
1853
1854         * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.
1855
1856 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
1857
1858         * dwarf2out.c (add_location_or_const_value_attribute): Prefer
1859         locations gathered by var-tracking in single entry loc_list
1860         over loc_descriptor_from_tree.
1861
1862         * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
1863         pass it down to loc_descriptor.
1864         (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
1865         (containing_function_has_frame_base): Move earlier in the file.
1866         (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
1867         instead of always assuming fbreg can't be used.
1868
1869 2005-08-11  David Edelsohn  <edelsohn@gnu.org>
1870
1871         * config/rs6000/altivec.md: Change constraint "m" to "Z".
1872         * config/rs6000/predicates.md (indexed_or_indirect_operand):
1873         Accept address wrapped in AND for Altivec.
1874         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1875         Strip AND wrapping offset address for Altivec.
1876
1877 2005-08-11  Richard Henderson  <rth@redhat.com>
1878
1879         PR middle-end/23312
1880         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
1881         before using TYPE_IS_SIZETYPE.
1882
1883 2005-08-11  Richard Henderson  <rth@redhat.com>
1884
1885         PR target/22225
1886         * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
1887         insn types not present on ev4.
1888         (alphaev5_insn_pipe): Similarly.
1889
1890 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1891
1892         PR target/23250
1893         * arm.c (arm_override_options): If the user has selected callee-super-
1894         interworking, then enable normal interworking.
1895
1896 2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1897
1898         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
1899         redefinition.
1900
1901 2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>
1902
1903         * doc/rtl.texi: Fix two typos.
1904
1905 2005-08-11  Richard Guenther  <rguenther@suse.de>
1906
1907         PR target/23289
1908         * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
1909         cases where we call to/from functions returning void.
1910
1911 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
1912
1913         PR c++/23225
1914         * tree.c (build_pointer_type_for_mode): Robustify.
1915
1916 2005-08-10  James E Wilson  <wilson@specifix.com>
1917
1918         * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
1919         (ASM_OUTPUT_ADDR_VEC_ELT): Delete.
1920
1921         * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
1922         "cum->".
1923
1924 2005-08-10  Eric Christopher  <echristo@apple.com>
1925
1926         * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
1927         * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
1928         V2DFmode.
1929
1930 2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>
1931
1932         PR target/21887
1933         * config/darwin.c (machopic_indirect_data_reference): Use a new register
1934         for the high part when generating dynamic-no-pic code.
1935
1936 2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>
1937
1938         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
1939         (x86_64-*-linux*): Likewise.
1940
1941         * config/i386/crtfastmath.c: New file.
1942         * config/i386/t-crtfm: Likewise.
1943
1944         * config/i386/linux.h (ENDFILE_SPEC): New.
1945         * config/i386/linux64.h (ENDFILE_SPEC): Likewise.
1946
1947         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
1948         crtfastmath.o.
1949
1950 2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>
1951
1952         * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
1953         (vec_shl, vec_shr): Document new operations.
1954         * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.
1955
1956 2005-08-10  David Edelsohn  <edelsohn@gnu.org>
1957
1958         * config/rs6000/predicates.md (indexed_or_indirect_address): New.
1959         * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
1960         change predicate to indexed_or_indirect_address.
1961
1962 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
1963
1964         * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
1965         * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
1966         __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
1967         and __aeabi_uwrite8.
1968         * config/arm/unaligned-funcs.c: New file.
1969         * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.
1970
1971 2005-08-09  Paolo Bonzini  <bonzini@gnu.org>
1972
1973         * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
1974         Add dump.
1975         * cfglayout.c (pass_insn_locators_initialize): Add dump.
1976         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
1977         Add dump.
1978         * except.c (pass_convert_to_eh_region_ranges): Add dump.
1979         * final.c (pass_shorten_branches): Add dump.
1980         * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
1981         (pass_life): Rename dump.
1982         (rest_of_handle_flow2): Remove initial verify_flow_info.
1983         * function.c (pass_instantiate_virtual_regs): Add dump.
1984         * integrate.c (pass_initial_value_sets): Add dump.
1985         * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
1986         * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
1987         (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
1988         pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
1989         (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
1990         gate_rtl_unrool_and_peel_loops): New.
1991         (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
1992         rtl_doloop): Do not look at flags.
1993         * mode-switching.c (pass_mode_switching): Add dump.
1994         * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
1995         pass_split_before_regstack): Add dump.
1996         * regmove.c (pass_stack_adjustments): Add dump.
1997         * tree-optimize.c (pass_fixup_cfg): Add dump.
1998
1999 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2000
2001         PR 23309
2002         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
2003         deciding which instruction sequence to use.
2004
2005 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
2006
2007         * tree-vect-transform.c (vect_create_epilog_for_reduction): Set
2008         BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.
2009
2010 2005-08-09  Richard Guenther  <rguenther@suse.de>
2011
2012         * c-common.c (builtin_function_2): Remove.
2013         (def_builtin_1): New function.
2014         (c_common_nodes_and_builtins): Use def_builtin_1 to
2015         build builtin functions.
2016
2017 2005-08-09  Jie Zhang  <jie.zhang@analog.com>
2018
2019         * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
2020         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
2021         * config/bfin/bfin.c (bfin_return_in_memory): Update to really match
2022         Visual DSP.
2023
2024 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
2025
2026         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
2027         fold_binary instead of fold_build2 since we don't care about the
2028         resulting tree.
2029         (loop_niter_by_eval): Likewise.
2030         (compare_trees): Likewise.
2031         (proved_non_wrapping_p): Likewise.
2032
2033 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
2034
2035         PR c/23161
2036         PR c/23165
2037         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
2038         if the if is really empty.
2039
2040 2005-08-09  Steven Bosscher  <stevenb@suse.de>
2041
2042         PR tree-optimization/23234
2043         * tree-ssa-math-opts.c (place_reciprocal): New enum.
2044         (execute_cse_reciprocals_1): Replace the 'phi' argument with an
2045         argument of the new enum.
2046         (execute_cse_reciprocals): Add reciprocals for function arguments
2047         on the unique successor edge of the entry block.  Update other calls
2048         to execute_cse_reciprocals_1.
2049
2050 2005-08-08  Richard Henderson  <rth@redhat.com>
2051
2052         PR 22439
2053         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
2054
2055 2005-08-08  Bob Wilson  <bob.wilson@acm.org>
2056
2057         * expr.c (write_complex_part): Return after handling MEM.
2058
2059 2005-08-08  Josh Conner  <jconner@apple.com>
2060
2061         PR rtl-optimization/23241
2062         * combine.c (simplify_comparison): Fix error in determining
2063         whether to lift a subreg from comparison.
2064
2065 2005-08-08  David Edelsohn  <edelsohn@gnu.org>
2066
2067         PR target/18506
2068         * config/rs6000/altivec.md (vec_init<mode>): New.
2069         (vec_set<mode>): New.
2070         (vec_extract<mode>): New.
2071         * config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
2072         (rs6000_expand_vector_set): New.
2073         (rs6000_expand_vector_extract): New.
2074         (rs6000_legitimate_offset_address_p): Offset addresses are valid
2075         for Altivec modes before reload.
2076         (altivec_expand_vec_init_builtin): New.
2077         (get_element_number): New.
2078         (altivec_expand_vec_set_builtin): New.
2079         (altivec_expand_vec_ext_builtin): New.
2080         (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
2081         builtins.
2082         (altivec_init_builtins): Init vec_init, vec_set, and vec_ext
2083         builtins.
2084         * config/rs6000/rs6000.h (rs6000_builtins): Add
2085         ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
2086         ALTIVEC_BUILTIN_VEC_EXT_<mode>.
2087         * config/rs6000/rs6000-protos.h: Declare new functions.
2088
2089 2005-08-08  Jan Hubicka  <jh@suse.cz>
2090
2091         * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
2092         (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
2093         * i386.md (movdi*): Use pic_32bit_operand.
2094         * predicates.md (pic_32bit_operand): New.
2095
2096 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2097
2098         PR c++/21166
2099         * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
2100
2101 2005-08-07  James A. Morrison  <phython@gcc.gnu.org>
2102
2103         * tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
2104         (test_for_singularity): Use fold_build2.
2105
2106 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2107
2108         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
2109
2110 2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
2111
2112         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
2113         (COMMON_ASM_OP) Define.
2114         * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
2115         (ix86_encode_section_info): Likewise.
2116         (TARGET_ENCODE_SECTION_INFO): Conditionally define as
2117         SUBTARGET_ENCODE_SECTION_INFO.
2118
2119 2005-08-06  Richard Henderson  <rth@redhat.com>
2120
2121         PR 21894
2122         * tree-nested.c (convert_local_reference): Save and restore val_only
2123         around component_ref and friends.  Clear walk_subtrees by default.
2124
2125 2005-08-06  Peter O'Gorman  <peter@pogma.com>
2126
2127         PR 21366
2128         * gcc.c (process_command): Check the argument to -b has a dash.
2129         * doc/invoke.texi: Update -b and -V docs.
2130
2131 2005-08-06  James E Wilson  <wilson@specifix.com>
2132
2133         * config/mips/cross64.h, config/mips/t-cross64: Delete.
2134
2135 2005-08-06  Michael Matz  <matz@suse.de>
2136
2137         * genattrtab.c (write_attr_get, write_attr_case): Use insn_code
2138         member only if only one insn is associated with the value.
2139
2140 2005-08-06  Nick Clifton  <nickc@redhat.com>
2141
2142         * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
2143         New define.
2144         (ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
2145         * config/stormy16/stormy16.c (xstormy16_below100_symbol):
2146         Check symbol flags instead of symbol name mangling.
2147         (xstormy16_asm_output_aligned_common): Likewise.  Also
2148         simplify code since the bss100_section cass is the only case
2149         where the below100 code will be triggered.
2150         (xstormy16_encode_section_info): Encode below100 attribute
2151         using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
2152         the name.
2153         (xstormy16_strip_name_encoding): Delete - this function is no
2154         longer needed.
2155         (TARGET_STRIP_NAME_ENCODING): Undefine.
2156         * config/stormy16/stormy16-protos.h: Delete prototype for
2157         xstormy16_strip_name_encoding.
2158
2159 2005-08-06  Kazu Hirata  <kazu@codesourcery.com>
2160
2161         * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
2162         config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
2163         tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
2164         config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
2165         config/alpha/predicates.md, config/arc/arc.h,
2166         config/arm/arm.h, config/arm/ieee754-df.S,
2167         config/arm/ieee754-sf.S, config/bfin/bfin.c,
2168         config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
2169         config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
2170         config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
2171         config/m68hc11/m68hc11.h, config/mips/mips.c,
2172         config/mips/mips.h, config/mips/openbsd.h,
2173         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
2174         config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
2175         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
2176         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
2177         config/sparc/linux.h, config/sparc/linux64.h,
2178         config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
2179         doc/extend.texi, doc/gcov.texi, doc/install.texi,
2180         doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
2181         typos.  Follow spelling conventions.
2182
2183 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
2184
2185         PR c/23113
2186         * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
2187         Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
2188         specially.  Check for side effects only for COND_EXPR.
2189         * c-typeck.c (c_finish_stmt_expr): Mark statement expression
2190         return with TREE_NO_WARNING.
2191
2192 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
2193
2194         PR rtl-optimization/23233
2195         * loop.c (combine_movables): Require the modes to be the same.
2196         (move_movables): Remove handling of cases where the replacement
2197         had a different mode to the original.
2198
2199 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
2200
2201         PR tree-optimization/23128
2202         * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
2203         subtraction wrap, and set TREE_OVERFLOW if they do.
2204
2205 2005-08-05  Richard Henderson  <rth@redhat.com>
2206
2207         PR 21728
2208         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
2209         FORCED_LABEL labels.
2210
2211 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
2212
2213         PR middle-end/23135
2214         * reload.c (find_reloads_subreg_address): Pass down TYPE
2215         unchanged.  Change all callers except find_reloads_toplev.
2216
2217 2005-08-05  Michael Matz  <matz@suse.de>
2218
2219         * genattrtab.c (current_alternative_string): Remove.
2220         (SIMPLIFY_ALTERNATIVE): Ditto.
2221         (attr_alt_bit_p): Ditto.
2222         (alternative_name): Make const char *.
2223         (evaluate_eq_attr): Remove use of above things.
2224         (simplify_test_exp): Ditto.
2225         (simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
2226         (simplify_test_exp <AND>): Correct typo (test 'right' not 'left').
2227
2228 2005-08-04  James E Wilson  <wilson@specifix.com>
2229
2230         * config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
2231         config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
2232         config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
2233         config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
2234         (LINK_SPEC): Delete useless %{Wl,*:%*} item.
2235
2236 2005-08-04  Richard Henderson  <rth@redhat.com>
2237
2238         PR 21529
2239         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
2240         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
2241         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
2242         if we'd have to instantiate too many members.
2243
2244 2005-08-04  Richard Henderson  <rth@redhat.com>
2245
2246         PR 21291
2247         * tree-outof-ssa.c (coalesce_asm_operands): New.
2248         (coalesce_ssa_name): Use it.  Split out ...
2249         (coalesce_phi_operands, coalesce_result_decls): ... these.
2250
2251 2005-08-04  Paul Brook  <paul@codesourcery.com>
2252
2253         * read-rtl.c (read_quoted_string): Break if EOF.
2254
2255 2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>
2256
2257         * tree.h (fold_build1): Change to macro and call fold_build1_stat.
2258         (fold_build2): Likewise.
2259         (fold_build3): Likewise.
2260         (fold_build1_stat): New function prototype.
2261         (fold_build2_stat): Likewise.
2262         (fold_build3_stat): Likewise.
2263         * fold-const.c (fold_build1): Rename to ..
2264         (fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
2265         through to build1_stat.
2266         (fold_build2): Rename to ..
2267         (fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
2268         through to build2_stat.
2269         (fold_build3): Rename to ..
2270         (fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
2271         through to build3_stat.
2272
2273 2005-08-04  David Edelsohn  <edelsohn@gnu.org>
2274             Ian Lance Taylor  <ian@airs.com>
2275
2276         * function.c (assign_stack_local_1): Do not correct stack slot
2277         address if allocation size is smaller than mode size.
2278
2279 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
2280
2281         PR 22037
2282         * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
2283         (tree_merge_blocks): Propagate anything allowed by
2284         may_propagate_copy.
2285         Clarify documentation.
2286         * passes.c (execute_todo): If cleanup_tree_cfg invalidated the
2287         SSA form, schedule an update if necessary.
2288
2289 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
2290
2291         * doc/install.texi (Binaries): Remove broken link to
2292         Sinix/Reliant Unix binaries.
2293
2294 2005-08-03  Richard Henderson  <rth@redhat.com>
2295
2296         PR 23221
2297         * function.c (stack_protect_epilogue): Export.
2298         * tree.h (stack_protect_epilogue): Declare.
2299         * calls.c (expand_call): Call it.
2300
2301 2005-08-03  Eric Christopher  <echristo@apple.com>
2302
2303         * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
2304         * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
2305         spec.
2306
2307 2005-08-04  Jan Hubicka  <jh@suse.cz>
2308
2309         * profile.c (branch_prob): Split edges with goto locus on them
2310         to get proper line counts.
2311         * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
2312
2313 2005-08-03  Paul Brook  <paul@codesourcery.com>
2314
2315         * function.c (assign_parms): Round current_function_args_size
2316         to PARM_BOUNDARY, not STACK_BOUNDARY.
2317
2318 2005-08-03  Geoffrey Keating  <geoffk@apple.com>
2319
2320         * config/i386/i386.c (x86_elf_aligned_common)
2321         (x86_output_aligned_bss): Don't try to use symbols that aren't defined.
2322
2323 2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>
2324
2325         PR tree-optimization/23157
2326         * tree-scalar-evolution.c (scev_const_prop): Unshare trees
2327         before emitting them.
2328
2329 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2330
2331         PR tree-optimization/19899
2332         * Makefile.in (tree-scalar-evolution.o): Add real.h.
2333         * tree-scalar-evolution.c: Include real.h.
2334         (add_to_evolution): Build constant -1 of correct type.
2335
2336 2005-08-03  Jan Hubicka  <jh@suse.cz>
2337
2338         * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
2339         * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
2340         profile updating for complette unrolling.
2341         * loop-unroll.c (peel_loop_completely): Use it.
2342         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
2343         (tree_unroll_loops_completely): Disable code growing unrolling of cold
2344         loops.
2345
2346 2005-08-03  Paul Brook  <paul@codesourcery.com>
2347
2348         * combine.c (can_change_dest_mode): New function.
2349         (try_combine, simplify_set): Use it.
2350
2351 2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>
2352
2353         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
2354         TFmode to BLKmode.
2355
2356 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
2357
2358         * doc/install.texi (Specific): Adjust link to openavr.org.
2359         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
2360         (Binaries): Adjust HP-UX Porting Center link.
2361         (Binaries): Adjust Free Software Foundation ordering link.
2362
2363 2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>
2364
2365         * convert.c (convert_to_integer): Use fold_build1 instead of
2366         build1 when converting an integer to an integer.
2367
2368 2005-08-02  Richard Henderson  <rth@redhat.com>
2369
2370         * combine.c (combine_instructions): Don't use reg_equal/equiv
2371         results if the mode doesn't match.
2372
2373 2005-08-02  Mark Mitchell  <mark@codesourcery.com>
2374
2375         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
2376         * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.
2377
2378 2005-08-02  Richard Henderson  <rth@redhat.com>
2379
2380         PR 23196
2381         * explow.c (memory_address): Remove special-case for
2382         virtual_stack_vars_rtx and virtual_incoming_args_rtx.
2383
2384 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
2385
2386         PR 23164
2387         * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
2388         number of calls to cleanup_tree_cfg_1.
2389
2390 2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>
2391
2392         * doc/invoke.texi: document file extensions .F90 and .F95
2393
2394 2005-08-02  Richard Guenther  <rguenther@suse.de>
2395
2396         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
2397         positive if its first argument is positive.
2398
2399 2005-08-02  Richard Guenther  <rguenther@suse.de>
2400
2401         PR tree-optimization/23177
2402         * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
2403         on TMR_TAG.
2404
2405 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
2406
2407         PR tree-optimization/23129
2408         * tree-vrp.c (extract_range_from_binary_expr): Set value range to
2409         varying for divisions with anti-ranges.
2410
2411 2005-08-02  Jan Hubicka  <jh@suse.cz>
2412
2413         * tree-ssa-dom.c (thread_across_edge): Remove updating here.
2414         * tree-ssa-threadupdate.c (thread_block): Add it here.
2415
2416 2005-08-01  James E Wilson  <wilson@specifix.com>
2417
2418         * config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
2419         TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
2420         * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
2421         New.
2422         * config/mips/predicates.md (const_call_insn_operand): Add check for
2423         SYMBOL_REF_LONG_CALL_P.
2424         * doc/extend.texi (long_call): Document the new attribute.
2425
2426 2005-08-01  Ian Lance Taylor  <ian@airs.com>
2427             Richard Henderson  <rth@redhat.com>
2428
2429         * Makefile.in (RTL_BASE_H): Add real.h.
2430         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
2431         instead of memcpy.
2432         * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
2433         directly.
2434         * rtl.c (rtl_check_failed_code_mode): New.
2435         * rtl.h (struct rtx_def): Add u.rv.
2436         (XCMWINT, XCNMPRV): New.
2437         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
2438         (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.
2439
2440 2005-08-01  Richard Henderson  <rth@redhat.com>
2441
2442         * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
2443         with auto-inc codes.
2444
2445         * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.
2446
2447 2005-08-01  Jan Hubicka  <jh@suse.cz>
2448
2449         * i386-protos.h (asm_preferred_eh_data_format): Declare.
2450         * i386.c: Include dwarf2.h
2451         (asm_preferred_eh_data_format): New.
2452         * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.
2453
2454 2005-08-01  Ian Lance Taylor  <ian@airs.com>
2455
2456         * config/host-linux.c (linux_gt_pch_get_address): Add new name
2457         randomize_va_space for virtual address randomization control.
2458
2459 2005-08-01  Steven Bosscher  <stevenb@suse.de>
2460
2461         * common.opt (flag_ipa_cp): Put in right place to maintain
2462         alphabetic sort.
2463
2464 2005-08-01  Jan Hubicka  <jh@suse.cz>
2465
2466         * profile.c (compute_value_histograms): Fix thinko.
2467         * value-prof.c: Include toplev.h
2468         (check_counter): New function.
2469         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
2470         tree_mod_subtract_transform): Add sanity check.
2471
2472 2005-08-01  Richard Guenther  <rguenther@suse.de>
2473
2474         PR tree-optimization/23133
2475         * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
2476         current functions parameter decls to find defs to cse
2477         reciprocals of.
2478
2479 2005-08-01  Richard Guenther  <rguenther@suse.de>
2480
2481         PR tree-optimization/23109
2482         * tree-ssa-math-opts.c (execute_cse_reciprocals_1):
2483         If trapping math is in effect, use post-dominator information
2484         to check if we'd in any case reach a trapping point before
2485         doing the reciprocal insertion.
2486         (execute_cse_reciprocals): Compute post-dominators, if necessary.
2487         * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
2488         expressions are invariant only if trapping math is not in effect.
2489
2490 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
2491
2492         * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
2493         cgraph_function_versioning): New declarations.
2494         * cgraphunit.c: Add include to ipa-prop.h.
2495         (update_call_expr, cgraph_copy_node_for_versioning,
2496         cgraph_function_versioning): New functions.
2497         * integrate.c (copy_decl_for_inlining): Remove.
2498         * ipa-prop.h (ipa_replace_map): New struct.
2499         (struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
2500         * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
2501         ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
2502         ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
2503         ipcp_iterate_stage, ipcp_method_scale_print,
2504         ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
2505         ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
2506         ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
2507         ipcp_update_bb_counts, ipcp_update_profiling,
2508         ipcp_update_edges_counts): New functions.
2509         (ipcp_method_cval_init): Remove restriction regarding local methods.
2510         (ipcp_init_stage): Add ipcp_method_compute_scale.
2511         (ipcp_insert_stage): Add versioning.
2512         (ipcp_structures_print): Add ipcp_method_scale_print.
2513         (ipcp_driver): Dump profiling info.
2514         * Makefile.in: Remove integrate.h dependency from tree-inline.o.
2515         Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
2516         * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
2517         (struct inline_data): Add versioning_p, ipa_info, new fields.
2518         (remap_decl, mark_local_for_remap_r, setup_one_parameter,
2519         declare_return_variable): Replace calls to copy_decl_for_inlining with
2520         copy_decl_for_dup.
2521         (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
2522         versioning support.
2523         (copy_decl_for_dup): Rename from copy_decl_for_inlining.
2524         Add argument VERSIONING.
2525         (copy_arguments_for_versioning, copy_static_chain,
2526         function_versionable_p, tree_versionable_function_p,
2527         tree_function_versioning, replace_ref_tree): New functions.
2528         * tree-inline.h: Include varray.h.
2529         (tree_versionable_function_p,  tree_function_versioning,
2530         tree copy_decl_for_dup): New declarations.
2531
2532 2005-08-01  Razya Ladelsky  <razya@il.ibm.com>
2533
2534         * ipa-cp.c: New file. Contains IPCP specific functionality.
2535         * ipa-prop.h: New file. Contains structures/definitions that can be
2536         used by several interprocedural data flow optimizations (and also IPCP).
2537         * ipa-prop.c: New file.
2538         * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
2539         * common.opt: Add ipa-cp flag.
2540         * timevar.def: Add IPCP optimization.
2541         * tree-optimize.c (init_tree_optimization_passes): Schedule
2542         pass_ipa_cp.
2543         * tree-pass.h (pass_ipa_cp): Declare.
2544
2545 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
2546
2547         * dwarf2out.c, fold-const.c, ipa-type-escape.c,
2548         loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
2549         tree-sra.c, config/arm/arm.c, config/crx/crx.c,
2550         config/i386/i386.c, config/mips/mips.h,
2551         config/rs6000/rs6000.h, config/sh/sh.c,
2552         config/stormy16/stormy16.c: Fix comment typos.
2553
2554 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
2555
2556         PR c/22311
2557         * c-typeck.c (build_binary_op): Use common_type wrapper on
2558         shortened types.
2559         (common_type): Update comment.
2560
2561 2005-07-31  Steven Bosscher  <stevenb@suse.de>
2562
2563         PR target/23095
2564         * common.opt (flag_gcse_after_reload): Don't initialize to 2.
2565         (flag_rerun_cse_after_loop): Initialize this to 2 instead.
2566         * postreload-gcse.c (hash_scan_set): Do not consider stack regs.
2567
2568 2005-07-31  Jan Hubicka  <jh@suse.cz>
2569
2570         * pretty-print.h (pp_widest_integer): New macro.
2571         * tree-pretty-print.c (dump_bb_header): Print BB frequencies and
2572         counts.
2573
2574 2005-07-31  Jan Hubicka  <jh@suse.cz>
2575
2576         * output.h (enum section_category): Export from varasm.c
2577         (categorize_decl_for_section): Likewise.
2578         * varasm.c (enum section_category): Kill.
2579         (categorize_decl_for_section): Make global.
2580         * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
2581         Declare.
2582         * i386.c (ix86_section_threshold): New static variable.
2583         (ix86_in_large_data_p, ix86_encode_section_info,
2584         x86_64_elf_unique_section,
2585         x86_64_elf_select_section): New functions.
2586         (TARGET_ENCODE_SECTION_INFO): Define
2587         (override_options): Enable medium model for PIC.
2588         (ix86_expand_prologue): Expand gen_set_got_rex64.
2589         (legitimate_constant_p): Handle new UNSPECs.
2590         (legitimate_pic_address_disp_p): Likewise.
2591         (legitimize_pic_address): Lower MEDIUM model addressing.
2592         * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
2593         (enum cmodel): Add MEDIUM_PIC.
2594         (SYMBOL_REF_FAR_ADDR_P): New macro.
2595         (SYMBOL_FLAG_FAR_ADDR): New flag.
2596         * i386.md (movdi): Support medium model.
2597         (set_got_rex64): New pattern.
2598         * i386.opt (mlarge-data-threshold): New flag.
2599         * predicates.md (zext_operand/sext_operand): Deal with medium model.
2600         * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
2601         (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
2602         TARGET_ASM_UNIQUE_SECTION): New.
2603
2604         * invoke.texi (-mlarge_data_threshold): Document
2605
2606 2005-07-31  Jan Hubicka  <jh@suse.cz>
2607
2608         * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
2609         (coalesce_vars): Likewise.
2610         * tree-ssa-live.c (coalesce_cost): New.
2611         (build_tree_conflict_graph): Use coalesce_cost.
2612         * tree-ssa-live.h (coalesce_cost): Declare.
2613
2614 2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>
2615
2616         * arm.md (all peepholes for post-increment operations): Delete.
2617         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
2618         (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
2619         (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
2620         (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
2621         (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.
2622
2623 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
2624
2625         * fold-const.c (tree_expr_nonnegative_p): Always return true for
2626         non-integral types.
2627
2628 2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>
2629
2630         PR target/22582
2631         * doc/invoke.texi: Document -rdynamic.
2632
2633 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
2634
2635         PR c/23143
2636         * c-parser.c (c_parser_parms_list_declarator): Call
2637         mark_forward_parm_decls.
2638         * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
2639         decls with visibility structure.
2640
2641 2005-07-30  Paul Brook  <paul@codesourcery.com>
2642
2643         * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.
2644
2645 2005-07-30  Paul Brook  <paul@codesourcery.com>
2646
2647         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
2648         prototype.
2649         * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
2650         value for mode.
2651         * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.
2652
2653 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
2654
2655         PR c/529
2656         * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
2657         nested function declarators.
2658         (pushdecl): Don't call warn_if_shadowing for PARM_DECL.
2659         (grokparms): Call warn_if_shadowing for parameters used within the
2660         parameter list.
2661         (store_parm_decls_newstyle): Call warn_if_shadowing for parameters
2662         not used within the parameter list.
2663         (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.
2664
2665 2005-07-30  Jan Hubicka  <jh@suse.cz>
2666
2667         * expr.c (expand_expr_real_1): Do not load mem targets into register.
2668         * i386.c (ix86_fixup_binary_operands): Likewise.
2669         (ix86_expand_unary_operator): Likewise.
2670         (ix86_expand_fp_absneg_operator): Likewise.
2671         * optabs.c (expand_vec_cond_expr): Validate dest.
2672
2673 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
2674
2675         PR c/21720
2676         * real.c (real_from_string): Also set last bit if there is a
2677         nonzero hex digit beyond GCC's internal precision after ".".
2678
2679 2005-07-29  David Edelsohn  <edelsohn@gnu.org>
2680
2681         * config/rs6000/altivec.md: Convert UNSPEC numerical values to
2682         define_constants.  Change duplicate values to unassigned numbers.
2683         Change UNSPEC_SUBS to UNSPEC_VSUBS.
2684         (*altivec_vspltsf): New.
2685         (altivec_vperm_v4sf): Delete.
2686         (altivec_vperm_<mode>): Use mode macro V.
2687         (altivec_vsldoi_<mode>): Convert to mode macro pattern.
2688         (altivec_predicate_v4sf): Delete.
2689         (altivec_predicate_<mode>): Use mode macro V.
2690         (*altivec_lvesfx): New.
2691         (*altivec_stvesfx): New.
2692         (vec_realign_load_v4sf): Delete.
2693         (vec_realign_load_<mode>): Use mode macro V.
2694         * config/rs6000/rs6000.c (generate_set_vrsave): Use
2695         UNSPECV_SET_VRSAVE.
2696
2697 2005-07-29  Mark Mitchell  <mark@codesourcery.com>
2698
2699         PR bootstrap/23131
2700         * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
2701         string.
2702         * configure: Regenerated.
2703
2704 2005-07-29  Paul Brook  <paul@codesourcery.com>
2705
2706         * doc/install.texi: Add link to GFortran binaries wiki page.
2707
2708 2005-07-29  David Ung  <davidu@mips.com>
2709
2710         * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
2711         (mips_rtx_cost_data): Add costs for 5kc and 5kf.
2712         * config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
2713         * config/mips/mips.md (cpu): Add 5kf name.
2714         (includes): Includes 5k.md.
2715         * config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
2716         * doc/invoke.texi (MIPS Options): Updated cpu name supported with
2717         -march flag.
2718
2719 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
2720
2721         PR 22550
2722         * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
2723         (cleanup_tree_cfg): ... here.
2724         Call cleanup_tree_cfg_1 until there are no more cleanups to
2725         do.
2726
2727 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
2728
2729         * tree-vrp.c (compare_range_with_value): Return true or false
2730         for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
2731         EQ_EXPR respectively.
2732
2733 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
2734
2735         * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
2736         Fix comment typos.
2737
2738 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
2739
2740         * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
2741         (tree_ssa_dominator_optimize): Increment it.
2742         (dump_dominator_optimization_stats): Print it.
2743
2744 2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
2745             Steven Bosscher  <stevenb@suse.de>
2746
2747         PR rtl-optimization/23117
2748         * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
2749         when head == tail.  Tidy comment.
2750
2751 2005-07-28  Richard Henderson  <rth@redhat.com>
2752
2753         * cse.c (exp_equiv_p): Special case CONST_DOUBLE.
2754         * cselib.c (rtx_equal_for_cselib_p): Likewise.
2755         * jump.c (rtx_renumbered_equal_p): Likewise.
2756         * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
2757         CONST_INT and CONST_DOUBLE.
2758         (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
2759         * reload.c (operands_match_p): Special case CONST_INT and
2760         CONST_DOUBLE; check mode earlier.
2761
2762 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
2763
2764         PR c/22240
2765         * c-typeck.c (convert_for_assignment): Do not check
2766         DECL_IN_SYSTEM_HEADER on NULL fundecl.
2767
2768 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
2769
2770         PR c/22192
2771         * c-typeck.c (composite_type): Prefer constant size arrays to
2772         VLAs.
2773
2774 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
2775
2776         PR c/21720
2777         * real.c (real_from_string): Set last bit if there is a nonzero
2778         hex digit beyond GCC's internal precision.
2779
2780 2005-07-28  Richard Henderson  <rth@redhat.com>
2781
2782         PR rtl-opt/22619
2783         * cfgcleanup.c (try_forward_edges): Watch out for end of
2784         insn chain.
2785
2786 2005-07-28  James E Wilson  <wilson@specifixinc.com>
2787
2788         PR c/23106
2789         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
2790
2791 2005-07-28  Jan Hubicka  <jh@suse.cz>
2792
2793         * Makefile.in (rtl-profile.o): Kill all traces of it.
2794         * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
2795         * coverage.h (rtl_coverage_counter_ref): Kill.
2796         * opts.c (flag_speculative_prefetching_set): Kill.
2797         (flag_loop_optimize_set): New.
2798         (common_handle_option): Disable loop optimizer when profiling;
2799         do not handle speculative prefetching.
2800         * passes.c (init_optimization_passes): Replace pass_profiling combo
2801         by branch_prob pass.
2802         * profile.c (compute_value_histograms): Update for simplified value
2803         profiles.
2804         (rtl_register_profile_hooks): Kill.
2805         (pass_profiling): Kill.
2806         (rest_of_handle_branch_prob): Do not profile.
2807         * toplev.c (process_options): Remove speculative prefetching.
2808         * toplev.h (flag_tree_based_profiling): Kill.
2809         * tree-profile.c (prepare_instrumented_value,
2810         tree_gen_interval_profiler, tree_gen_pow2_profiler,
2811         tree_gen_one_value_profiler, do_tree_profiling): Update for
2812         simplified datastructures.
2813         * value-prof.c: Add comment that speculative prefetching was dropped;
2814         update rest of file for simplified datastructures.
2815         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
2816         rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
2817         find_mem_reference_1, find_mem_reference_2, find_mem_reference,
2818         rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
2819         rtl_mod_subtract, gen_speculative_prefetch,
2820         rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
2821         rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
2822         (gate_handle_value_profile_transformations,
2823         rest_of_handle_value_profile_transformations,
2824         pass_value_profile_transformations): Kill.
2825         * value-prof.h (histogram_value_t): Remove IL based unions.
2826         (rtl_register_value_prof_hooks, rtl_register_profile_hooks,
2827         rtl_profile_hooks): Remove hooks.
2828
2829         * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
2830
2831         * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
2832         (cgraph_clone_node): Likewise.
2833         * cgraph.h (cgraph_clone_edge): Update prototype.
2834         (cgraph_clone_node): Likewise.
2835         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
2836         cgraph_clone_node.
2837         (lookup_recursive_calls): Consider profile.
2838         (cgraph_decide_recursive_inlining): Fix updating; use new
2839         probability argument; use profile.
2840         * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
2841         * tree-inline.c (copy_bb): Update clal of clone_edge.
2842         * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.
2843
2844         * invoke.texi (min-inline-recursive-probability): Document.
2845
2846 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
2847
2848         * doc/install.texi (Configuration): Update Valgrind homepage.
2849
2850 2005-07-28  Richard Henderson  <rth@redhat.com>
2851
2852         PR middle-end/21362
2853         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
2854         labels we want to delete.
2855         (cfg_layout_merge_blocks): Likewise.
2856
2857 2005-07-28  Richard Henderson  <rth@redhat.com>
2858
2859         PR target/17692
2860         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
2861         when expanding to nothing.
2862
2863 2005-07-28  Josh Conner  <jconner@apple.com>
2864
2865         * ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
2866         (cgraph_decide_inlining_of_small_functions): Likewise.
2867
2868 2005-07-28  Josh Conner  <jconner@apple.com>
2869
2870         * ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
2871         direction of badness if negative.
2872         (cgraph_default_inline_p): Add reason to parameters, and assign it
2873         a value.
2874         (cgraph_decide_inlining_of_small_functions): New parameter in call
2875         to cgraph_default_inline_p.
2876         (cgraph_decide_inlining_incrementally): Likewise.
2877         * cgraphunit.c (decide_is_function_needed): Likewise.
2878         * cgraph.h (cgraph_default_inline_p): Likewise.
2879
2880 2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2881
2882         * builtins.c: Fix comment typo(s).
2883         * genautomata.c: Likewise.
2884         * gimplify.c: Likewise.
2885         * tree-dfa.c: Likewise.
2886         * tree-flow-inline.h: Likewise.
2887         * tree-into-ssa.c: Likewise.
2888         * tree-ssa-alias.c: Likewise.
2889         * tree-ssa-ccp.c: Likewise.
2890         * tree-ssa-copy.c: Likewise.
2891         * tree-ssa-dce.c: Likewise.
2892         * tree-ssa-dom.c: Likewise.
2893         * tree-ssa-operands.c: Likewise.
2894         * tree-tailcall.c: Likewise.
2895         * tree-vectorizer.c: Likewise.
2896         * tree-vrp.c: Likewise.
2897         * tree.c: Likewise.
2898
2899 2005-07-28  Jeff Law  <law@redhat.com>
2900
2901         * tree-vrp.c (test_for_singularity): Extracted from  ...
2902         (simplify_cond_using_ranges): Attempt to simplify a relational
2903         test to NE_EXPR.  Dump information when a COND_EXPR is simplified.
2904
2905 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
2906
2907         PR tree-optimization/22506
2908         * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
2909         phis whose argument is constant.
2910
2911 2005-07-28  J"orn Rennecke <joern.rennecke@st.com>
2912
2913         PR rtl-optimization/18992
2914         Back out this patch:
2915           2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2916           PR optimization/12142
2917           * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
2918           uses of the register in the SET_SRC.  Remove unnecessary argument.
2919
2920         Replace it with this:
2921         * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
2922         if flag_non_call_exceptions is set and the insn may trap, pass
2923         pc_rtx as dest for recursion.
2924         In SET_SRC part of SET case, if dest is already set, pass it down
2925         unchanged.
2926
2927 2005-07-28  Jan Hubicka  <jh@suse.cz>
2928
2929         * cfg.c (update_bb_profile_for_threading): Use RDIV.
2930         (scale_bbs_frequencies_int): Likewise, assert for possible overflow.
2931         (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
2932         roundoff errors.
2933         * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
2934         profile when available.
2935
2936 2005-07-28  Jan Beulich <jbeulich@novell.com>
2937
2938         * config/ia64/ia64.c (ia64_load_pair_ok): New.
2939         (ia64_print_operand): Describe and handle 'X'.
2940         (ia64_register_move_cost): Also handle FP_REGS.
2941         (ia64_preferred_reload_class): Likewise.
2942         (ia64_secondary_reload_class): Likewise.
2943         (ia64_dependencies_evaluation_hook): New local variable c. Initialize
2944         it. Also check for ITANIUM_CLASS_FLDP.
2945         * config/ia64/ia64.h (FP_REGNO_P): New.
2946         (HARD_REGNO_MODE_OK): Remove explusion of TImode.
2947         (reg_class): Add FP_REGS.
2948         (REG_CLASS_NAMES): Adjust for it.
2949         (REG_CLASS_CONTENTS): Likewise.
2950         (REGNO_REG_CLASS): Use FP_REGS where appropriate.
2951         (REG_CLASS_FROM_LETTER): Handle 'x'.
2952         (CLASS_MAX_NREGS): Handle FP_REGS.
2953         (MEMORY_MOVE_COST): Likewise.
2954         * config/ia64/ia64.md (itanium_class): Add fldp.
2955         (type): Handle fldp.
2956         (movti_internal): More allowable operand combinations. Use ldfp8 when
2957         splitting unnecessary. Remove predicable attribute. Adjust
2958         itanium_class attribute.
2959         (smuldi3_highpart): Remove outdated comment.
2960         (mulditi3, umulditi3, rotlti3): New expanders.
2961         (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
2962         (absti2): Disabled new insn for future reference.
2963         Respective new splitters.
2964         * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
2965         * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
2966         * config/ia64/ia64-protos.h (ia64_load_pair_ok): New.
2967
2968 2005-07-25  James A. Morrison  <phython@gcc.gnu.org>
2969
2970         PR rtl-optimization/23047
2971         * simplify-rtx.c (simplify_const_relational_operation): Respect
2972         flag_wrapv for comparisons with ABS.
2973
2974 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
2975
2976         PR tree-optimization/22493
2977         * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
2978         VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.
2979
2980 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
2981
2982         * config/frv/frv.opt (moptimize-membar): New.
2983
2984         * doc/invoke.texi: Document -moptimize-membar and its inverse.
2985
2986         * config/frv/frv.h: Remove machine_function definition.
2987
2988         * config/frv/frv.c (struct frv_io): New.
2989         (struct machine_function): Moved from frv.h.  Add has_membar_p.
2990         (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
2991         (frv_extract_membar, frv_io_check_address, frv_io_handle_set)
2992         (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
2993         (frv_optimize_membar_global, frv_optimize_membar): New functions.
2994         (frv_reorg): Call frv_optimize_membar when appropriate.
2995         (bdesc_loads, bdesc_stores): Use the membar code as the icode field.
2996         (frv_expand_builtin): Adjust calls accordingly.
2997         (frv_io_address_cookie): New function.
2998         (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
2999         load or store rather than a special insn.  Add ccnstant address and
3000         io-type operands to the membar.
3001         (frv_ifcvt_modify_tests): Unsign regno.
3002         (frv_ifcvt_modify_tests): Same.
3003
3004         * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
3005         UNSPEC_OPTIONAL_MEMBAR constant.
3006         (builtin_read_<mode>): Delete.
3007         (builtin_write_<mode>): Delete.
3008         ("optional_membar_<mode>"): Add operand.
3009
3010         * testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
3011         * testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
3012         * testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
3013         * testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
3014         * testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
3015         * testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
3016         * testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
3017         * testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
3018         * testsuite/gcc.target/frv/all-read-write-1.c: New.
3019
3020 2005-07-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3021
3022         * df.c (df_uses_record): Handle SCRATCH.
3023
3024 2005-07-28  Steven Bosscher  <stevenb@suse.de>
3025
3026         PR debug/20161
3027         * passes.c (rest_of_decl_compilation): If decl is a type and
3028         we have encountered errors, don't emit debug information.
3029
3030 2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>
3031
3032         * params.def: Fixed comment.
3033
3034 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
3035
3036         PR target/19885
3037         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
3038         (TARGET_ASM_UNALIGNED_HI_OP): Add.
3039         (TARGET_ASM_UNALIGNED_SI_OP): Add.
3040
3041 2005-07-27  Steven Bosscher  <stevenb@suse.de>
3042
3043         PR c++/22003
3044         * varasm.c (assemble_start_function): Don't do anything that may
3045         require a CFG if the current function is a thunk.
3046
3047 2005-07-25  Geoffrey Keating  <geoffk@apple.com>
3048
3049         * doc/install.texi (Prerequisites): Mention that perl is needed
3050         to do export control in libstdc++ targetting Darwin.
3051
3052 2005-07-27  Steven Bosscher  <stevenb@suse.de>
3053
3054         PR rtl-optimization/17808
3055         * sched-deps.c (sched_get_condition): Enable #if 0'ed code.
3056         (sched_insns_conditions_mutex_p): Split out from...
3057         (add_dependence): ...here.  But don't call it from here.
3058         (add_dependence_list): Check sched_insns_conditions_mutex_p
3059         before calling add_dependence.
3060         (add_dependence_list_and_free): Likewise.
3061         (fixup_sched_groups): Likewise.
3062         (sched_analyze_1): Likewise.
3063         (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
3064         (sched_analyze): Likewise.
3065         (sched_analyze_insn): Likewise.
3066         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3067         * sched-rgn.c (add_branch_dependences): Likewise.  Also, add
3068         dependencies on all COND_EXEC insns to jumps ending basic blocks
3069         when doing intrablock scheduling.
3070         * sched-int.h (sched_insns_conditions_mutex_p): Add prototype.
3071
3072 2005-07-27  Jeff Law  <law@redhat.com>
3073
3074         * tree-vrp.c (vrp_meet): Intersect the equivalency sets when
3075         meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
3076         equivalency sets, correctly handle the case were vr0 has an
3077         equivalency set, but vr1 does not.
3078
3079 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
3080
3081         PR tree-optimization/23073
3082         * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
3083         vect_print_dump_info before fprintf.
3084
3085 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
3086
3087         PR tree-optimize/22348
3088         * tree-ssa-loop-niter.c (number_of_iterations_cond):
3089         Fold the partial computation.
3090
3091 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
3092
3093         PR tree-optimization/22325
3094         * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
3095         Declare.
3096         * tree-scalar-evolution.c (scev_const_prop): Add generic final
3097         value replacement.
3098         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
3099         (force_var_cost): ... this function.
3100         (compute_phi_arg_on_exit): Export.
3101
3102 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
3103
3104         PR tree-optimization/20773
3105         * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
3106         edge.
3107
3108 2005-07-27  Richard Guenther  <rguenther@suse.de>
3109
3110         * tree-ssa-structalias.c (push_fields_onto_fieldstack):
3111         Avoid pushing again if current struct contains only
3112         fields we decomposed.
3113
3114 2005-07-27  Jan Hubicka  <jh@suse.cz>
3115
3116         PR tree-optimization/22574
3117         * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
3118         not available.
3119
3120         * tree-tailcall.c (decrease_profile): New function.
3121         (eliminate_tail_call): Use it.
3122
3123         * cgraphunit.c (cgraph_function_and_variable_visibility): Set
3124         visibility flags correctly in whole program mode.
3125
3126 2005-07-26  Steve Ellcey  <sje@cup.hp.com>
3127
3128         PR rtl-optimization/22472
3129         * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.
3130
3131 2005-07-26  Steven Bosscher  <stevenb@suse.de>
3132
3133         PR tree-optimization/22504
3134         * tree-complex.c (expand_complex_addition): Use 'code' instead
3135         of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).
3136
3137 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
3138
3139         * config.gcc (cpu_type): Add frv case.
3140         (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
3141         (supported_defaults): Add fr550 case.
3142
3143 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
3144
3145         PR 22591
3146         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
3147         whether a pointer of type T * may point to objects of type T *.
3148
3149 2005-07-26  DJ Delorie  <dj@redhat.com>
3150
3151         * configure: Regenerate.
3152
3153 2005-07-26  Dale Johannesen  <dalej@apple.com>
3154
3155         * postreload-gcse.c (alloc_mem):  Start CUID numbering at 1.
3156
3157 2005-07-26  Mark Mitchell  <mark@codesourcery.com>
3158
3159         * doc/install.texi (--with-build-sysroot): Fix grammatical error.
3160         Clarify use of "build" in name.
3161
3162 2005-07-26  Aldy Hernandez  <aldyh@redhat.com>
3163
3164         * doc/extend.texi (Raw read/write Functions): New section.
3165         * testsuite/gcc.target/frv/all-builtin-read8.c: New.
3166         * testsuite/gcc.target/frv/all-builtin-read16.c: New.
3167         * testsuite/gcc.target/frv/all-builtin-read32.c: New.
3168         * testsuite/gcc.target/frv/all-builtin-read64.c: New.
3169         * testsuite/gcc.target/frv/all-builtin-write8.c: New.
3170         * testsuite/gcc.target/frv/all-builtin-write16.c: New.
3171         * testsuite/gcc.target/frv/all-builtin-write32.c: New.
3172         * testsuite/gcc.target/frv/all-builtin-write64.c: New.
3173         * config/frv/frv.c: Add bdesc_loads global.
3174         Add bdesc_stores global.
3175         (frv_init_builtins): Add support for __builtin_{read/write}*.
3176         (frv_volatile_memref): New.
3177         (frv_expand_load_builtin): New.
3178         (frv_expand_store_builtin): New.
3179         * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
3180         FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
3181         FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
3182         FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
3183         * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
3184         UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
3185         (builtin_read_<mode>): New.
3186         (builtin_write_<mode>): New.
3187         (builtin_write64): New.
3188         (optional_membar_<mode>): New.
3189
3190 2005-07-26  J"orn Rennecke <joern.rennecke@st.com>
3191
3192         * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
3193         (rather than units) against HOST_BITS_PER_WIDE_INT.
3194
3195 2005-07-26  Kazu Hirata  <kazu@codesourcery.com>
3196
3197         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
3198         ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
3199         ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
3200         config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
3201         FSF address.
3202
3203         * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
3204         tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
3205         config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
3206         comment typos.
3207         * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.
3208
3209 2005-07-26  Richard Guenther  <rguenther@suse.de>
3210
3211         PR tree-optimization/22486
3212         * fold-const.c (fold_unary): Fold away useless component
3213         references of the form (T *)&T.x, if the address
3214         doesn't change.
3215
3216 2005-07-25  James E Wilson  <wilson@specifixinc.com>
3217
3218         * dwarf2out.c (add_call_src_coords_attributes): New.
3219         (gen_inlined_subroutine_die): Call it.
3220         (maybe_emit_file, init_file_table): Add comments.
3221         (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
3222         maybe_emit_file.
3223         * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
3224         (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
3225         * tree.h (BLOCK_SOURCE_LOCATION): New.
3226         (struct tree_block): New field locus.
3227
3228 2005-07-26  Andreas Schwab  <schwab@suse.de>
3229
3230         PR rtl-optimization/23043
3231         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
3232         when allocating a struct unoccr.
3233
3234 2005-07-25  Richard Henderson  <rth@redhat.com>
3235
3236         PR 22626
3237         * tree-complex.c (gate_no_optimization): True if errors.
3238         * Makefile.in (tree-complex.o): Update dependencies.
3239
3240 2005-07-25  Aldy Hernandez  <aldyh@redhat.com>
3241
3242         * config/frv/predicates.md (integer_register_operand): Use
3243         GPR_AP_OR_PSEUDO_P.
3244
3245 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
3246
3247         PR tree-opt/22484
3248         * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
3249         after fold.
3250         * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
3251
3252 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
3253
3254         * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
3255         types when flag_unsafe_math_optimizations is true.
3256
3257 2005-07-25  Mark Mitchell  <mark@codesourcery.com>
3258
3259         * gcc.c (option_map): Add --sysroot.
3260         (process_command): Handle --sysroot.
3261         (display_help): Document it.
3262         * doc/cppopts.tex (-isysroot): Document.
3263         * doc/invoke.texi (--sysroot): Document.
3264         * doc/install.texi (--with-build-sysroot): Document.
3265
3266         * Makefile.in (inhibit_libc): New variable.
3267         (INHIBIT_LIBC_CFLAGS): Likewise.
3268         (LIBGCC2_CFLAGS): Include
3269         $(INHIBIT_LIBC_CFLAGS).
3270         (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
3271         ($(T)crtbegin.o): Do not use @inhibit_libc@.
3272         ($(T)crtend.o): Likewise.
3273         ($(T)crtbeginS.o): Do not use @inhibit_libc@.
3274         ($(T)crtendS.o): Likewise.
3275         ($(T)crtbeginT.o): Do not use @inhibit_libc@.
3276         ($(T)crtendT.o): Likewise.
3277         (stmp-fixinc): Do not complain about missing headers if
3278         inhibit_libc.
3279         * configure.ac (inhibit_libc): Set it to true/false.
3280         (--with-build-sysroot): New option.  Use it to set
3281         SYSTEM_HEADER_DIR.
3282         * configure: Regenerated.
3283
3284 2005-07-25  Manfred Hollstein  <mh@suse.com>
3285
3286         * calls.c (store_one_arg): Fix unsigned comparison warning.
3287
3288 2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3289
3290         PR other/22337
3291         * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
3292         (ggc_print_statistics): Initialize variable before use.
3293
3294 2005-07-25  Richard Guenther  <rguenther@suse.de>
3295
3296         * tree-dfa.c (mark_new_vars_to_rename): Protect against
3297         calling with a PHI_NODE argument.
3298
3299         * tree-flow-inline.h (overlap_subvar): Protect against
3300         possible overflow.
3301
3302 2005-07-25  Paolo Bonzini  <bonzini@gnu.org>
3303
3304         * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
3305         * configure: Regenerate.
3306
3307 2005-07-25  Ira Rosen  <irar@il.ibm.com>
3308
3309         * expr.c (highest_pow2_factor): Make extern.
3310         * tree-data-ref.c (ptr_decl_may_alias_p): New function.
3311         (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
3312         record_array_differ_p, array_ptr_differ_p): Likewise.
3313         (base_object_differ_p): Rename (from array_base_name_differ_p). Support
3314         additional cases. Call the above functions.
3315         (base_addr_differ_p): Moved from tree-vect-analyze.c. Call
3316         base_object_differ_p when there are two base objects. Otherwise, compare
3317         base address and offset. Call may_alias_p.
3318         (dump_data_reference): Use a correct field name.
3319         (analyze_array): Make static. Initialize new data-ref fields.
3320         (analyze_indirect_ref): New function.
3321         (init_data_ref): Initialize new data-ref fields.
3322         (strip_conversion): Moved from tree-vect-analyze.c.
3323         (analyze_offset_expr, get_ptr_offset, address_analysis,
3324         object_analysis): Likewise.
3325         (analyze_offset): New function.
3326         (create_data_ref): Likewise.
3327         (initialize_data_dependence_relation): Call base_addr_differ_p. Compare
3328         dimensions for ARRAY_REFs only.
3329         (build_classic_dist_vector): Make static.
3330         (access_functions_are_affine_or_constant_p): Call macro to get the
3331         address of access functions.
3332         (compute_all_dependences): Add new parameter
3333         compute_self_and_read_read_dependences. Compute self and read-read
3334         dependences if it is true.
3335         (find_data_references_in_loop): Call create_data_ref. Initialize new
3336         data-ref fields.
3337         (compute_data_dependences_for_loop): Add new parameter
3338         compute_self_and_read_read_dependences. Remove parameter nb_loops,
3339         compute nb_loops. Call compute_all_dependences,
3340         build_classic_dist_vector and build_classic_dir_vector with correct
3341         parameters.
3342         (analyze_all_data_dependences): Call compute_data_dependences_for_loop
3343         with correct parameters. Compare dimensions for ARRAY_REFs only.
3344         (free_data_refs): Call macro to free access functions.
3345         * tree-data-ref.h (struct first_location_in_loop): New structure. Move
3346         fields from stmt_vinfo.
3347         (struct base_object_info): New structure.
3348         (struct data_reference): Move fields to base_object_info. Add fields
3349         first_location and object_info for above structures. Move fields from
3350         stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
3351         aligned_to.  Add macros to access the new fields.
3352         Update functions declarations.
3353         * tree-flow.h (is_aliased_with): Declare.
3354         * tree-loop-linear.c (linear_transform_loops): Call
3355         compute_data_dependences_for_loop with correct parameters.
3356         * tree-ssa-alias.c (is_aliased_with): New function.
3357         * tree-vect-analyze.c (vect_get_ptr_offset): Remove.
3358         (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
3359         (vect_analyze_data_ref_dependence): Get ddr. Remove call to
3360         vect_base_addr_differ_p, compute_subscript_distance and
3361         build_classic_dist_vector. Add printings. Check absolute value of
3362         distance.
3363         (vect_analyze_data_ref_dependences): Go through ddrs instead of
3364         data-refs.
3365         (vect_compute_data_ref_alignment): Get the fields of data-ref instead of
3366         stmt. Check aligned_to. Check if the base is aligned. Remove conversion
3367         to bytes. Add printing.
3368         (vect_compute_data_refs_alignment): Go through loads and stores in one
3369         loop.
3370         (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
3371         vect_analyze_data_ref_access): Likewise.
3372         (vect_analyze_pointer_ref_access): Remove.
3373         (vect_address_analysis, vect_object_analysis): Likewise.
3374         (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
3375         and analyze data-refs in the loop.
3376         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
3377         fields of data-ref instead of stmt. Add init to the offset from the
3378         base.
3379         (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
3380         (vect_update_init_of_dr): Likewise.
3381         (vect_update_inits_of_drs): Go through loads and stores in one loop.
3382         * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
3383         removed fields.
3384         (new_loop_vec_info): Initialize new fields.
3385         (destroy_loop_vec_info): Free new fields.
3386         (vect_strip_conversion): Remove.
3387         * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
3388         (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
3389         datarefs. Add new field ddrs.
3390         Add macros for the new fields access.
3391         (struct _stmt_vec_info): Remove: base_address, initial_offset, step,
3392         base_aligned_p, misalignment, memtag, ptr_info and subvars.
3393         Remove their macros.
3394         * tree.h (highest_pow2_factor): Declare.
3395
3396 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
3397
3398         * calls.c (store_one_arg): Check for sibling call MEM arguments
3399         from already clobbered incoming argument area.
3400
3401 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3402
3403         * c-common.c (check_missing_format_attribute): New.
3404         * c-common.h (check_missing_format_attribute): Likewise.
3405         * c-typeck.c (convert_for_assignment): Use it.
3406
3407 2005-07-24  Andreas Schwab  <schwab@suse.de>
3408
3409         * config/m68k/m68k.md ("extendqidi2"): When source is an address
3410         register use a word move.  Correct operand of ext.w in 68000 code.
3411
3412 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
3413
3414         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
3415         variables as declarations, rather than definitions.
3416
3417 2005-07-24  Ira Rosen  <irar@il.ibm.com>
3418
3419         PR tree-optimization/22526
3420         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
3421         of the zero node.
3422
3423 2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3424
3425         * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
3426         that C99 reserve for future use. Use it to define clog10,
3427         clog10f and clog10l.
3428
3429 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3430
3431         * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
3432         * configure.ac: Check for -Wmissing-format-attribute.
3433
3434         * configure: Regenerate.
3435
3436 2005-07-23  Richard Henderson  <rth@redhat.com>
3437
3438         PR tree-optimization/22623
3439         * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.
3440
3441 2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>
3442
3443         PR target/22577
3444         * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.
3445
3446 2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3447
3448         * Makefile.in (C_TREE_H): Update dependencies.
3449         * c-tree.h: Include toplev.h.
3450         * diagnostic.h (diagnostic_set_info): Add format attribute.
3451         * rtl-error.c (diagnostic_for_asm): Likewise.
3452
3453 2005-07-23  Chao-ying Fu  <fu@mips.com>
3454
3455         * config/mips/mips-dsp.md: New file.
3456         * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
3457         * config/mips/mips.c (mips_function_type): Add types for DSP builtin
3458         functions.
3459         (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
3460         MIPS_BUILTIN_BPOSGE32.
3461         (mips_expand_builtin_direct): Add one parameter to indicate that
3462         builtin functions need to return a value.
3463         (mips_expand_builtin_bposge): New for expanding "bposge" builtin
3464         functions.
3465         (mips_regno_to_class): Add classes for 12 new DSP registers.
3466         (mips_subword): Change to check four HI registers.
3467         (mips_output_move): Output move to and from 6 new DSP accumulators.
3468         (override_options): Make sure -mdsp and -mips16 are not used together.
3469         Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
3470         for machine modes.
3471         (mips_conditional_register_usage): Disable 6 new DSP accumulators
3472         when !TARGET_DSP.
3473         (print_operand): Add 'q' for printing DSP accumulators.
3474         (mips_cannot_change_mode_class): Check ACC_REGS.
3475         (mips_secondary_reload_class): Check ACC_REGS.
3476         (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
3477         (mips_register_move_cost): Check ACC_REGS.
3478         (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
3479         (CODE_FOR_mips_subu_qb): New code-aliasing macros.
3480         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
3481         (dsp_bdesc): New array.
3482         (bdesc_arrays): Add DSP builtin function table.
3483         (mips_prepare_builtin_arg): Check predicate again after
3484         copy_to_mode_reg.
3485         (mips_expand_builtin): Add one more parameter to
3486         mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
3487         MIPS_BUILTIN_BPOSGE32.
3488         (mips_init_builtins): Initialize new function types.
3489         (mips_expand_builtin_direct): Check if builtin functions need to
3490         return a value and pass operands properly.
3491         (mips_expand_builtin_bposge): New function.
3492         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
3493         (ASM_SPEC): Map -mdsp to -mdsp in GAS.
3494         (FIRST_PSEUDO_REGISTER): Increase to 188.
3495         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3496         Update for 12 new DSP registers.
3497         (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
3498         (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
3499         (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
3500         (reg_class): Add DSP_ACC_REGS and ACC_REGS.
3501         (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
3502         (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
3503         (REG_ALLOC_ORDER): Update for 12 new DSP registers.
3504         (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
3505         (UIMM6_OPERAND, IMM10_OPERAND): New macros.
3506         (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
3507         (REGISTER_NAMES): Add names for 12 new DSP registers.
3508         * config/mips/mips.md: Include mips-dsp.md.
3509         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
3510         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
3511         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
3512         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
3513         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
3514         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
3515         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
3516         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
3517         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
3518         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
3519         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
3520         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
3521         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
3522         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
3523         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
3524         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
3525         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
3526         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
3527         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
3528         (UNSPEC_RDDSP): New constants.
3529         (*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
3530         (*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
3531         A<-d alternative.
3532         * config/mips/mips.opt (-mdsp): New option.
3533         * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
3534         (reg_imm10_operand): New predicates.
3535         * doc/extend.texi (MIPS DSP Built-in Functions): New section.
3536         * doc/invoke.texi (-mdsp): Document new option.
3537
3538 2005-07-22  DJ Delorie  <dj@redhat.com>
3539
3540         * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
3541         to warning calls.
3542         * tree-inline.c (inlinable_function_p): Likewise.
3543
3544 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
3545
3546         PR debug/21828
3547         * toplev.c (check_global_declarations): Do not mark undefined
3548         variables as DECL_IGNORED_P.
3549         * varasm.c (first_global_object_name): GTY it.
3550         (weak_global_object_name): Likewise.
3551         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
3552         a string to go into {weak,first}_global_object_name.
3553
3554 2005-07-22  DJ Delorie  <dj@redhat.com>
3555
3556         * c-format.c (check_function_format): Change warning control
3557         option from OPT_Wattribute to OPT_Wmissing_format_attribute.
3558
3559 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
3560
3561         * tree-ssa-alias.c (count_ptr_derefs): Do not consider
3562         &PTR->FLD a dereference of PTR.
3563         * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
3564         a potential dereference of PTR.
3565
3566 2005-07-22  J"orn Rennecke <joern.rennecke@st.com>
3567
3568         PR rtl-optimization/20370
3569         * ifcvt.c (dead_or_predicable): Before calling propagate_block,
3570         call allocate_reg_info if necessary.
3571
3572         PR rtl-optimization/21848
3573         * calls.c (emit_library_call_value_1): For const functions, add
3574         USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.
3575
3576         PR rtl-optimization/22445
3577         * cselib.c (target.h): Include.
3578         (rtx_equal_for_cselib_p): Allow commutative matches.
3579         (cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
3580         Remove MODE parameter.  Changed all callers.
3581
3582         PR rtl-optimization/22258
3583         * combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
3584         New functions.
3585         (try_combine): Use likely_spilled_retval_p.
3586
3587 2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>
3588
3589         * config.gcc: Add crx-elf support.
3590
3591         * doc/contrib.texi: Mention crx.
3592         * doc/extend.texi: Document crx extensions.
3593         * doc/install.texi: Document crx install.
3594         * doc/invoke.texi: Document crx options.
3595         * doc/md.texi: Document crx constraints.
3596
3597         * config/crx/crx-protos.h: New file.
3598         * config/crx/crx.c: New file.
3599         * config/crx/crx.h: New file.
3600         * config/crx/crx.md: New file.
3601         * config/crx/crx.opt: New file.
3602         * config/crx/t-crx: New file.
3603
3604 2005-07-22  Manfred Hollstein  <mh@suse.com>
3605
3606         * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
3607         warnings.
3608         (int_add_graph_edge): Likewise.
3609         (collapse_nodes): Likewise.
3610         (process_unification_queue): Likewise.
3611
3612 2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3613             Laurent GUERBY  <laurent@guerby.net>
3614
3615         PR tree-optimization/22336
3616         * function.c (record_block_change): Check for
3617         cfun->ib_boundaries_block.
3618
3619 2005-07-21  James A. Morrison  <phython@gcc.gnu.org>
3620
3621         * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
3622         (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.
3623
3624 2005-07-21  DJ Delorie  <dj@redhat.com>
3625
3626         * toplev.c (warn_deprecated_use): Add warning control to warning
3627         call.
3628         * c-typeck.c (parser_build_binary_op): Likewise.
3629         (c_finish_if_stmt): Likewise.
3630         * c-common.c (check_function_sentinel): Likewise.
3631         (check_nonnull_arg): Likewise.
3632
3633 2005-07-21  Richard Henderson  <rth@redhat.com>
3634
3635         PR tree-opt/22504
3636         * tree-complex.c (complex_ssa_name_components): New.
3637         (cvc_lookup): Allow entry not found.
3638         (create_components): Remove.
3639         (create_one_component_var, get_component_var): New.
3640         (get_component_ssa_name, set_component_ssa_name): New.
3641         (extract_component): Use get_component_ssa_name.
3642         (update_complex_components): Use set_component_ssa_name.
3643         (update_complex_components_on_edge): Likewise.
3644         (update_phi_components): Create new PHI nodes directly, instead
3645         of adding insns to edges.
3646         (tree_lower_complex): Allocate and free complex_variable_components
3647         and complex_ssa_name_components here.
3648
3649 2005-07-20  Daniel Berlin  <dberlin@dberlin.org>
3650
3651         * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
3652         revert to returning false.
3653
3654 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
3655
3656         PR target/21149
3657         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
3658
3659 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
3660
3661         PR target/22576
3662         * config/i386/i386.md (cmpxf): Change operand constraints
3663         to "nonmemory_operand".
3664
3665 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
3666
3667         * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.
3668
3669 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
3670
3671         PR middle-end/21180
3672         * fold-const.c (fold_build1): Add checksum for the operands.
3673         (fold_build2): Likewise.
3674         (fold_build3): Likewise.
3675
3676 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
3677
3678         PR middle-end/19055
3679         * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".
3680
3681 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
3682
3683         * common.opt (-fforward-propagate): Committed by mistake,
3684         removed.
3685
3686 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3687
3688         * reg-stack.c: Fix comment typo(s).
3689         * tree-ssa-operands.c: Likewise.
3690         * tree-vectorizer: Likewise.
3691
3692 2005-07-21  Nick Clifton  <nickc@redhat.com>
3693
3694         * config/sh/symbian.c: Replace C++ style line comments with C
3695         style line comments.
3696         (symbian_add_attribute): Do not use a ? operator on the LHS of
3697         an assignment.
3698         (sh_symbian_handle_dll_attribute): Change the type of the
3699         method vector to "VEC(tree,gc)*" and use vector accessor
3700         macros to walk over the elements.
3701         (symbian_export_vtable_and_rtti_p): Likewise.
3702         (symbian_class_needs_attribute_p): Likewise.
3703
3704 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
3705
3706         PR target/22085
3707         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
3708         initialize targetm.resolve_overloaded_builtin here.
3709         (altivec_expand_overloaded_builtin): Make it non-static.
3710         * config/rs6000/rs6000-protos.h
3711         (altivec_expand_overloaded_builtin): New prototype.
3712         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
3713         targetm.resolve_overloaded_builtin here.
3714         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.
3715
3716 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
3717             Zdenek Dvorak  <dvorakz@suse.cz>
3718
3719         PR tree-optimization/19210
3720         * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
3721         New.
3722         * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
3723         * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
3724         rely on unproven assumptions.
3725         * predict.c (predict_loops): Adjust call to number_of_iterations_exit.
3726         * tree-flow.h (number_of_iterations_exit): Add final parameter.
3727         * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
3728         to number_of_iterations_exit.
3729         * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
3730         * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
3731         * tree-ssa-loop-niter.c (find_loop_niter,
3732         estimate_numbers_of_iterations_loop): Likewise.
3733         (number_of_iterations_exit): Honor the new options.
3734         * doc/invoke.texi (Wunsafe-loop-optimizations,
3735         funsafe-loop-optimizations): Document them.
3736
3737 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
3738
3739         PR rtl-optimization/22167
3740         * gcse.c (hoist_code): Fix hoist_exprs[] check.
3741
3742 2005-07-20  Adam Nemet  <anemet@lnxw.com>
3743
3744         * config/rs6000/lynx.h: Mark __do_global_ctors_aux and
3745         __do_global_dtors_aux longcall.
3746
3747 2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>
3748
3749         * gensupport.c (old_preds): Don't reference PREDICATE_CODES.
3750         (old_special_pred_table): Don't reference
3751         SPECIAL_MODE_PREDICATES.
3752         * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
3753         * config/arc/arc.h: Don't mention PREDICATE_CODES.
3754         * config/sh/predicates.h: Don't mention
3755         SPECIAL_MODE_PREDICATES.
3756         * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3757         Remove.
3758
3759 2005-07-20  DJ Delorie  <dj@redhat.com>
3760
3761         * config.gcc: Add m32c-elf support.
3762
3763         * doc/contrib.texi: Mention m32c.
3764         * doc/extend.texi: Document m32c extensions.
3765         * doc/install.texi: Mention m32c.
3766         * doc/invoke.texi: Document m32c options.
3767         * doc/md.texi: Document m32c constraints.
3768
3769         * config/m32c/addsub.md: New file.
3770         * config/m32c/bitops.md: New file.
3771         * config/m32c/cond.md: New file.
3772         * config/m32c/jump.md: New file.
3773         * config/m32c/m32c-lib1.S: New file.
3774         * config/m32c/m32c-lib2.c: New file.
3775         * config/m32c/m32c-modes.def: New file.
3776         * config/m32c/m32c-pragma.c: New file.
3777         * config/m32c/m32c-protos.h: New file.
3778         * config/m32c/m32c.abi: New file.
3779         * config/m32c/m32c.c: New file.
3780         * config/m32c/m32c.h: New file.
3781         * config/m32c/m32c.md: New file.
3782         * config/m32c/m32c.opt: New file.
3783         * config/m32c/minmax.md: New file.
3784         * config/m32c/mov.md: New file.
3785         * config/m32c/muldiv.md: New file.
3786         * config/m32c/predicates.md: New file.
3787         * config/m32c/prologue.md: New file.
3788         * config/m32c/shift.md: New file.
3789         * config/m32c/t-m32c: New file.
3790
3791 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3792
3793         * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
3794         (stack_protect_set, stack_protect_test): New expanders.
3795         (stack_protect_set_si, stack_protect_set_si_media,
3796         stack_protect_set_di_media, stack_protect_test_si,
3797         stack_protect_test_si_media, stack_protect_test_di_media):
3798         New insns.
3799
3800 2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>
3801
3802         * c-typeck.c (output_init_element): Don't copy the INTEGER_CST.
3803
3804 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
3805
3806         * tree.h (tree_expr_nonzero_p): Export.
3807         * fold-const.c (tree_expr_nonzero_p): Likewise.
3808         Return true for CALL_EXPRs that are alloca calls.
3809         (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
3810         against zero.
3811         * tree-flow.h (expr_computes_nonzero): Remove.
3812         * tree-vrp.c (expr_computes_nonzero): Remove.
3813         (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
3814         (extract_range_from_unary_expr): Likewise.
3815         * tree-ssa-dom.c (record_equivalences_from_stmt): Use
3816         tree_expr_nonzero_p.
3817
3818 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
3819
3820         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
3821         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
3822         extra arg "picreg" and use it instead of pic_offset_table_rtx.
3823         All callers changed.
3824         (frame_related_constant_load): New arg "related" which controls
3825         setting of RTX_FRAME_RELATED_P.  All callers changed.
3826         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
3827         (bfin_expand_prologue): Add stack limit checking.
3828         * config/bfin/bfin.md (trapifcc): New pattern.
3829
3830         * config/bfin/bfin.c: Include "langhooks.h".
3831         (def_builtin): Go through lang_hooks to call builtin_function.
3832
3833         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
3834         * config/bfin/predicates.md (symbol_ref_operand): New.
3835         (call_insn_operand): Delete.  All callers changed to use
3836         register_no_elim_operand.
3837         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
3838         call_cookie field.
3839         (function_arg): Use it to generate the call's operand 2.
3840         (bfin_longcall_p): New function.
3841         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
3842         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
3843         determine if the address needs to be in a REG.
3844         (bfin_handle_longcall_attribute): New function.
3845         (bfin_attribute_table): Add "longcall" and "shortcall".
3846         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
3847         (CUMULATIVE_ARGS): New member call_cookie.
3848         (PREDICATE_CODES): Add symbol_ref_operand.
3849         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
3850         extra USE to the pattern.
3851         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
3852         New patterns, split off call_insn, sibcall_insn, call_value_insn and
3853         sibcall_value_insn; now the new patterns handle direct calls and the
3854         old ones indirect calls.
3855         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
3856
3857 2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
3858
3859         * doc/trouble.texi: Update section on handling of empty loops.
3860
3861 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
3862
3863         * config.gcc: Remove support for sparc-*-openbsd*,
3864         i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
3865         ns32k-*-netbsd*.
3866         * config.host: Remove support for i860-*-sysv4* as a host.
3867         * config/i860/*, config/ip2k/*, config/ns32k/*,
3868         config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
3869         * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
3870         mention obsolete ports.
3871
3872 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3873
3874         * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
3875         soft frame pointer.
3876         (sh_expand_prologue): Use hard_frame_pointer_rtx instead
3877         of frame_pointer_rtx.
3878         (sh_expand_epilogue): Likewise.
3879         (sh_set_return_address): Likewise.
3880         (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
3881         instead of FRAME_POINTER_REGNUM if needed.  Add elimination
3882         offsets from FRAME_POINTER_REGNUM.
3883         * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
3884         (sh_register_names): Add initializer for sfp.
3885         (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
3886         (VALID_REGISTER_P): Likewise.
3887         (FIRST_PSEUDO_REGISTER): Update.
3888         (DWARF_FRAME_REGISTERS): Define.
3889         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
3890         (HARD_FRAME_POINTER_REGNUM): Define.
3891         (FRAME_POINTER_REGNUM): Redefine.
3892         (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
3893         but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
3894         from FRAME_POINTER_REGNUM.
3895         (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
3896         FRAME_POINTER_REGNUM.
3897         (REG_CLASS_CONTENTS): Add sfp.
3898         (REG_ALLOC_ORDER): Likewise.
3899         (FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
3900         (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
3901         of frame_pointer_rtx.
3902         (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3903
3904 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
3905
3906         * fold-const.c (tree_expr_nonnegative_p): Only return true for
3907         ABS_EXPR when flag_wrapv is false because of INT_MIN.
3908         (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
3909         of an ABS_EXPR.
3910         (fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
3911         ABS_EXPR<x>.
3912
3913 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
3914
3915         Make CONSTRUCTOR use VEC to store initializers.
3916         * c-common.c (complete_array_type): Update to cope with VEC in
3917         CONSTRUCTOR_ELTS.
3918         * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
3919         (pp_c_constructor_elts): New function.
3920         * c-pretty-print.h (pp_c_constructor_elts): Declare.
3921         * c-typeck.c (build_function_call, build_c_cast, digest_init,
3922         struct constructor_stack, struct initializer_stack,
3923         constructor_elements, push_init_level, pop_init_level,
3924         add_pending_init, find_init_member, output_init_element): Update to
3925         cope with VEC in CONSTRUCTOR_ELTS.
3926         * coverage.c (build_fn_info_value, build_ctr_info_value,
3927         build_gcov_info): Likewise.
3928         * expr.c (categorize_ctor_elements_1, store_constructor,
3929         expand_expr_real_1): Likewise.
3930         * fold-const.c (fold_ternary): Likewise.
3931         * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
3932         gimplify_init_constructor, gimplify_expr): Likewise.
3933         * tree-dump.c (dequeue_and_dump): Likewise.
3934         * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
3935         node.
3936         * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
3937         CONSTRUCTOR_ELTS.
3938         * tree-sra.c (generate_element_init_1): Likewise.
3939         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3940         * tree-ssa-operands.c (get_expr_operands): Likewise.
3941         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3942         * tree-vect-transform.c (vect_get_vec_def_for_operand):
3943         (get_initial_def_for_reduction): Likewise.
3944         * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
3945         value handle in annotations.
3946         * tree.c (tree_node_kind, tree_code_size, make_node_stat,
3947         tree_node_structure): Add support for constr_kind.
3948         (build_vector_from_ctor, build_constructor_single,
3949         build_constructor_from_list): New functions.
3950         (build_constructor): Update to take a VEC instead of a TREE_LIST.
3951         (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
3952         Update to cope with VEC in CONSTRUCTOR_ELTS.
3953         * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
3954         * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
3955         CONSTRUCTOR_APPEND_ELT): New macros.
3956         (struct constructor_elt, struct tree_constructor): New data types.
3957         (union tree_node): Add tree_constructor field.
3958         * treestruct.def: Define TS_CONSTRUCTOR.
3959         * varasm.c (const_hash_1, compare_constant, copy_constant,
3960         compute_reloc_for_constant, output_addressed_constants,
3961         initializer_constant_valid_p, output_constant,
3962         array_size_for_constructor, output_constructor): Update to cope with
3963         VEC in CONSTRUCTOR_ELTS.
3964         * vec.h (VEC_empty, VEC_copy): New macros.
3965
3966 2005-07-19  Devang Patel  <dpatel@apple.com>
3967
3968         * dbxout.c (dbxout_type): Check Objective-C++ lang.
3969
3970 2005-07-19  Richard Henderson  <rth@redhat.com>
3971
3972         PR tree-opt/22278
3973         * gimplify.c (gimplify_expr): Use main variant type for the temp
3974         destination for a discarded volatile read.
3975         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
3976         casts between non-void types that change volatility.
3977
3978 2005-07-15  DJ Delorie  <dj@redhat.com>
3979
3980         * toplev.h: Add comment about the first parameter for warning().
3981         * errors.h: Likewise.
3982
3983         * c.opt (Wpragmas): New.
3984         * doc/invoke.texi: Document it.
3985
3986         * function.c (do_warn_unused_parameter): Add warning control to
3987         warning call.
3988         * c-decl.c (warn_if_shadowing): Likewise.
3989         * c-lex.c (cb_def_pragma): Likewise.
3990         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
3991         (pop_alignment): Likewise.
3992         (handle_pragma_pack): Likewise.
3993         (apply_pragma_weak): Likewise.
3994         (handle_pragma_weak): Likewise.
3995         (handle_pragma_redefine_extname): Likewise.
3996         (add_to_renaming_pragma_list): Likewise.
3997         (handle_pragma_extern_prefix): Likewise.
3998         (maybe_apply_renaming_pragma): Likewise.
3999         (handle_pragma_visibility): Likewise.
4000
4001         * config/c4x/c4x-c.c (BAD): Likewise.
4002         (c4x_parse_pragma): Likewise.
4003         * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
4004         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
4005         (rs6000_pragma_longcall): Likewise.
4006         * config/v850/v850-c.c (pop_data_area): Likewise.
4007         (ghs_pragma_section): Likewise.
4008         (ghs_pragma_section): Likewise.
4009         (ghs_pragma_interrupt): Likewise.
4010         (ghs_pragma_starttda): Likewise.
4011         (ghs_pragma_startsda): Likewise.
4012         (ghs_pragma_startzda): Likewise.
4013         (ghs_pragma_endtda): Likewise.
4014         (ghs_pragma_endsda): Likewise.
4015         (ghs_pragma_endzda): Likewise.
4016
4017 2005-07-19  Danny Berlin <dberlin@dberlin.org>
4018             Kenneth Zadeck <zadeck@naturalbridge.com>
4019
4020         * Makefile.in: Removed tree-promote-statics.c
4021         * tree-promote-statics.c: Removed.
4022         * common.opt: Removed flag-promote-statics.
4023         * opts.c: Ditto.
4024         * passes.c: Removed tree-promote-statics pass.
4025         * tree-pass.h: Ditto.
4026         * timevar.def: Removed TV_PROMOTE_STATICS.
4027
4028
4029 2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>
4030
4031         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
4032         and *-*-freebsd9.
4033         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
4034
4035 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4036
4037         PR c/22476
4038         * c-common.c (check_function_arguments): Call
4039         'check_function_format' if either -Wformat or
4040         -Wmissing-format-attribute are specified.
4041         * c-format.c (check_function_format): Check -Wformat before
4042         calling 'check_format_info'.
4043         * c-opts.c (c_common_post_options): Don't warn for
4044         -Wmissing-format-attribute without -Wformat.
4045         * c-typeck.c (convert_for_assignment): Detect additional cases for
4046         -Wmissing-format-attribute.
4047         * doc/invoke.texi (-Wmissing-format-attribute): Document new
4048         behavior.
4049
4050 2005-07-19  Richard Guenther  <rguenther@suse.de>
4051
4052         * config/i386/i386.md (lrint<mode>2): Use temporary
4053         instead of clobbering non-existent memory.
4054
4055 2005-07-19  Nick Clifton  <nickc@redhat.com>
4056
4057         * config/avr/avr.c (legitimate_address_p): Fix debugging print
4058         statement to avoid displaying ASCII control characters.
4059
4060 2005-07-19  Ben Elliston  <bje@au.ibm.com>
4061
4062         * bt-load.c (link_btr_uses): Fix uninitialised warnings.
4063         * cfganal.c (find_edge_index): Ditto.
4064         * combine.c (combine_instructions): Ditto.
4065         * ddg.c (create_scc): Ditto.
4066         (find_successors): Ditto.
4067         (find_predecessors): Ditto.
4068         (find_nodes_on_paths): Ditto.
4069         (longest_simple_path): Ditto.
4070         * flow.c (update_life_info): Ditto.
4071         (count_or_remove_death_notes): Ditto.
4072         (clear_log_links): Ditto.
4073         * modulo-sched.c (generate_reg_moves): Ditto.
4074         (find_max_asap): Ditto.
4075         (find_max_hv_min_mob): Ditto.
4076         (find_max_dv_min_mob): Ditto.
4077         * sbitmap.c (sbitmap_first_set_bit): Ditto.
4078         * sched-rgn.c (extract_edgelst): Ditto.
4079         * tree-into-ssa.c (prepare_names_to_update): Ditto.
4080         (dump_update_ssa): Ditto.
4081         (ssa_names_to_replace) Ditto.
4082         (switch_virtuals_to_full_rewrite): Ditto.
4083         (update_ssa): Ditto.
4084         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
4085
4086 2005-07-18  Daniel Berlin  <dberlin@dberlin.org>
4087
4088         Fix PR tree-optimization/22483
4089
4090         * tree-complex.c (create_components): Use
4091         safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
4092         * tree-flow-inline.h (fill_referenced_var_vec): New function.
4093         * tree-flow.h (safe_referenced_var_iterator): New structure.
4094         (FOR_EACH_REFERENCED_VAR_SAFE): New macro.
4095         * tree-ssa-alias.c (setup_pointers_and_addressables): Use
4096         safe_referenced_var iterator.
4097         (add_type_alias): Ditto.
4098
4099 2005-07-19  Steven Bosscher  <stevenb@suse.de>
4100
4101         * loop-init.c (rest_of_handle_loop2): Remove.
4102         (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
4103         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
4104         (pass_rtl_loop_init, pass_rtl_loop_done,
4105         pass_rtl_move_loop_invariants, pass_rtl_unswitch,
4106         pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
4107         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
4108         pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
4109         pass_tree_loop_done, and pass_tree_unswitch.
4110         (gate_loop): Rename to gate_tree_loop.
4111         * passes.c (init_optimization_passes): Update for renamed tree
4112         loop passes.  Add the new loop2 passes as subpasses of loop2.
4113         * tree-pass.h: Add extern declarations for the new loop2 subpasses.
4114         Update for the renamed tree loop passes.
4115
4116 2005-07-18  Ian Lance Taylor  <ian@airs.com>
4117
4118         PR middle-end/22057
4119         * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
4120         blocks when optimizing.
4121
4122 2005-07-18  Steve Ellcey  <sje@cup.hp.com>
4123
4124         * common.opt (frename-registers): Initialize to 2.
4125         (fweb): Ditto.
4126         (fgcse-after-reload): Ditto.
4127         * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
4128         (process_options): Only change flag_web, flag_rename_registers,
4129         and flag_rerun_cse_after_loop if not explicitly set by user.
4130
4131 2005-07-18  Jan Beulich  <jbeulich@novell.com>
4132
4133         * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
4134         ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
4135         in 64-bit mode the same as DImode in 32-bit mode.
4136         (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
4137         ix86_split_lshr): Likewise. Rename to no longer refer to a specific
4138         mode. Add new mode parameter.
4139         * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
4140         * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
4141         x86_64_shift_adj): New expanders.
4142         (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
4143         *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
4144         insns.
4145         Respective new splitters. Use renamed shift splitter helpers in 32-bit
4146         DImode shift splitters.
4147         * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
4148         ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
4149         mode parameter.
4150
4151 2005-07-18  Jan Beulich  <jbeulich@novell.com>
4152
4153         * i386.md (movdi_extzv_1): New.
4154         (zero_extendhidi2): Combine alternatives and never force use of
4155         REX64 prefix.
4156         (zero_extendqidi2): Likewise. Don't restrict input selection.
4157
4158 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
4159
4160         Fix PR tree-optimization/22531
4161         * tree-ssa-pre.c (do_eustores):  Make sure LHS is a decl for the
4162          moment.
4163
4164 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
4165
4166         * tree-promote-statics.c (pass_promote_statics): Change dump file
4167          name.
4168
4169 2005-07-17  Daniel Berlin  <dberlin@dberlin.org>
4170
4171         * tree-optimize.c (init_tree_optimization_passes): Add
4172         pass_eliminate_useless_stores pass.
4173         * tree-pass.h (pass_eliminate_useless_stores): New pass structure.
4174         * tree-ssa-pre.c (is_copy_stmt): New function.
4175         (follow_copies_till_vuse): Ditto.
4176         (do_eustores): Ditto.
4177         (gate_eustores): Ditto.
4178
4179 2005-07-16  Richard Henderson  <rth@redhat.com>
4180
4181         * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.
4182
4183 2005-07-16 Danny Berlin <dberlin@dberlin.org>
4184            Kenneth Zadeck <zadeck@naturalbridge.com>
4185
4186         * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
4187         ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
4188         ipa-type-escape.h, tree-promote-statics.c
4189         * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
4190         ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
4191         tree-promote-statics.c: new files.
4192         * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
4193         nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
4194         int nonlocal_set_p, mark_constant_function): Deleted.
4195         (rest_of_handle_cfg): Removed call to mark_constant_function.
4196         (nonoverlapping_component_refs_p): Added calls to support
4197         type based aliasing.
4198         * tree-ssa-alias.c (may_alias_p,
4199         compute_flow_insensitive_aliasing): Ditto.
4200         * calls.c (flags_from_decl_or_type): Removed reference to
4201         cgraph_rtl_info.
4202         * c-typeck.c (convert_arguments): Make builtins tolerant of having
4203         too many arguments.  This is necessary for Spec 2000.
4204         * cgraph.h (const_function, pure_function): Removed.
4205         * common.opt: Added "fipa-pure-const", "fipa-reference",
4206         "fipa-type-escape", and "ftree-promote-static".
4207         * opts.c: Ditto.
4208         * passes.c: Added ipa and tree-promote-statics passes.
4209         * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
4210         TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
4211         * tree-dfa.c (referenced_var_lookup_if_exists): New function.
4212         * tree-flow.h: Added exposed sra calls and addition of
4213         reference_vars_info field for FUNCTION_DECLS.
4214         * tree-pass.h: Added passes.
4215         * tree-sra.c: (sra_init_cache): New function.
4216         (sra_insert_before, sra_insert_after) Made public.
4217         (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
4218         and made public.
4219         * tree-ssa-alias.c (dump_alias_stats): Added stats for type based
4220         aliasing. (may_alias_p): Added code to use type escape analysis to
4221         improve alias sets.
4222         * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
4223         code to prune clobbers of static variables based on information
4224         produced in ipa-reference pass.  Changed call clobbering so that
4225         statics are not marked as clobbered if the call does not clobber
4226         them.
4227
4228 2005-07-16  Daniel Berlin  <dberlin@dberlin.org>
4229
4230         * tree-ssa-structalias.c (need_to_solve): Need to check for preds,
4231         too.
4232
4233 2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
4234
4235         * doc/install.texi (*-*-solaris2*): Document recommended version
4236         of GNU binutils and mention GNU linker problem on Solaris 10.
4237
4238 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
4239
4240         PR c/22421
4241         * c-decl.c (c_build_bitfield_integer_type): New function.
4242         (finish_struct): Call it.
4243         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
4244
4245 2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4246
4247         * c-typeck.c (digest_init): Call 'convert_for_assignment'
4248         before returning.
4249
4250 2005-07-16  Jan Hubicka  <jh@suse.cz>
4251
4252         * cfg.c (update_bb_profile_for_threading): Fix profile updating.
4253         (scale_bbs_frequencies_int): Watch roundoff errors.
4254         * predict.c (return_prediction): Initialize return_stmt.
4255
4256 2005-07-16  Jan Hubicka  <jh@suse.cz>
4257
4258         * profile.c (rest_of_handle_branch_prob): Fix handling of estimation
4259         after RTL profiling.
4260
4261 2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>
4262
4263         PR middle-end/22398
4264         * fold-const.c (build_range_check): Convert high/low to etype
4265         if we are only comparing against exp.
4266
4267 2005-07-13  Daniel Berlin  <dberlin@dberlin.org>
4268
4269         Fix PR tree-optimization/22376
4270         * tree-ssa-structalias.c (build_constraint_graph): We really meant
4271         special var here.
4272         (need_to_solve): New function.
4273         (compute_points_to_sets): Use it.
4274
4275 2005-07-15  Jan Hubicka  <jh@suse.cz>
4276
4277         * cfg.c (update_bb_profile_for_threading): More diagnostic.
4278         * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.
4279
4280 2005-07-15  Richard Guenther  <rguenther@suse.de>
4281
4282         * c-common.c (handle_flatten_attribute): New function.
4283         Add flatten function attribute.
4284         * doc/extend.texi: Document flatten function attribute.
4285         * Makefile.in (ipa-inline.o): Depend on hashtab.h.
4286         * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
4287         New functions.
4288         (cgraph_decide_inlining): Handle functions with flatten
4289         attribute.
4290
4291 2005-07-14  David Edelsohn  <edelsohn@gnu.org>
4292
4293         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
4294         UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
4295         UNSPEC_XCHG, UNSPEC_AND): New.
4296         (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
4297         UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
4298         * config/rs6000/sync.md (FETCHOP): New code macro.
4299         (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
4300         New code attrs.
4301         (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
4302         (sync_compare_and_swap<mode>): Same.
4303         (sync_lock_test_and_set<mode>): Same.
4304         (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
4305         for QImode and HImode, and not PPC405.
4306         (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
4307         (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
4308         (sync_<fetchop>{si,di}_internal): New.
4309         (sync_nand{si,di}_internal): New.
4310         (sync_old_<fetchop>{si,di}_internal): New.
4311         (sync_old_nand{si,di}_internal): New
4312         (sync_new_<fetchop>{si,di}_internal): New.
4313         (sync_new_nand{si,di}_internal): New.
4314         (atomic_and{si,di}): New.
4315         (sync_new_nand{si,di}_internal): New.
4316         (atomic_and{si,di}): New.
4317         (sync_add<mode>_internal): Delete.
4318         (sync_addshort_internal): Use unspec instead of unspec_volatile.
4319         (sync_sub<mode>_internal): Delte.
4320         (sync_subshort_internal): New.
4321         (sync_andsi_internal): Use unspec instead of unspec_volatile.
4322         (sync_anddi_internal): Delete.
4323         (sync_boolsi_internal): Use unspec instead of unspec_volatile.
4324         (sync_booldi_internal): Delete.
4325         (sync_boolc<mode>_internal): Delete.
4326         (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
4327         (sync_boolc<mode>_internal2): Delete.
4328         (sync_boolcc<mode>_internal): Delete.
4329         (isync, lwsync): Use unspec instead of unspec_volatile.
4330         * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
4331         Revert UNSPEC_VOLATILE.
4332         (rs6000_split_atomic_op): New.
4333         * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.
4334
4335 2005-07-14  Eric Christopher  <echristo@redhat.com>
4336
4337         * config/mips/mips.c (mips_canonicalize_comparison): Cast
4338         argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.
4339
4340 2005-07-14  Eric Christopher  <echristo@redhat.com>
4341
4342         * config/s390/t-tpf (SHLIB_MAPFILES): Remove.
4343
4344 2005-07-14  Steven Bosscher  <stevenb@suse.de>
4345
4346         PR tree-optimization/22230
4347         * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
4348         the computation of the four cross productions for "range op range".
4349
4350 2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
4351             Ulrich Weigand  <uweigand@de.ibm.com>
4352
4353         PR target/20126
4354         * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
4355         in some insn.
4356
4357 2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
4358
4359         * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.
4360
4361 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
4362
4363         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.
4364
4365 2005-07-14  Richard Guenther  <rguenther@suse.de>
4366
4367         PR middle-end/22347
4368         * config/i386/i386-protos.h (ix86_function_value): Change
4369         prototype to match new target hook.
4370         * config/i386/i386.c (ix86_value_regno): Change prototype
4371         to take extra type argument.
4372         (TARGET_FUNCTION_VALUE): Define.
4373         (ix86_function_ok_for_sibcall): Pass extra argument to
4374         ix86_value_regno, check return slot rtx for exact match.
4375         (ix86_function_value): Take extra parameter.  Dispatch to
4376         ix86_value_regno with fndecl/fntype as provided.
4377         (ix86_value_regno): Handle extra type argument.
4378         * config/i386/i386.h (FUNCTION_VALUE): No longer define.
4379
4380         * testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
4381         * testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
4382         * testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
4383         * testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
4384         * testsuite/gcc.target/i386/sseregparm-7.c: New testcase.
4385
4386 2005-07-14  Richard Guenther  <rguenther@suse.de>
4387
4388         * Makefile.in (explow.o, reg-stack.o): Depend on target.h.
4389         * calls.c (expand_call): Pass fntype to hard_function_value.
4390         (emit_library_call_value_1): Likewise.
4391         * explow.c: Include target.h.
4392         (hard_function_value): Take extra argument, the fntype.
4393         Use new target hook for function_value.
4394         * expr.h (hard_function_value): Change prototype.
4395         * function.c (aggregate_value_p): Pass 0 as fntype to
4396         hard_function_value.
4397         (assign_parms): Use new target hook for function_value.
4398         Pass 0 as fntype to hard_function_value.
4399         (expand_function_end): Likewise.
4400         * reg-stack.c: Include target.h.
4401         (stack_result): Use new target hook for function_value.
4402         * target-def.h: New target hook function_value.
4403         * target.h: Likewise.
4404         * targhooks.c (default_function_value): New function.
4405         * targhooks.h (default_function_value): Declare.
4406
4407 2005-07-13  Ian Lance Taylor  <ian@airs.com>
4408
4409         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
4410
4411 2005-07-14  Jan Hubicka  <jh@suse.cz>
4412
4413         * tree-dfa.c (dump_variable): Use default_def function.
4414         * tree-ssa-alias.c (dump_points_to_info): Likewise.
4415         * tree-ssa.c (verify_use): Likewise.
4416         * tree-ssanames.c (release_ssa_name): Likewise.
4417         * tree-tailcall.c (eliminate_tail_call): Likewise.
4418         (tree_optimize_tail_calls_1): Likewise.
4419         * tree-vrp.c (get_value_range): Likewise.
4420
4421 2005-07-14  Ben Elliston  <bje@au.ibm.com>
4422
4423         * gcc.c (main): Compare language[0] with '*' when iterating over
4424         the infiles.
4425
4426 2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
4427
4428         * config/s390/s390.c: (s390_cc_modes_compatible): Move before
4429         "s390_emit_compare".  Add handling of CCZ1mode.
4430         (s390_canonicalize_comparison): Simplify cascaded EQ, NE.
4431         (390_emit_compare): Use "s390_cc_modes_compatible" for mode
4432         checking.
4433         (s390_branch_condition_mask): Add CCZ1mode handling.
4434         * config/s390/s390.md: ("seq", "*seq"): New pattern.
4435         ("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
4436         Use CCZ1mode instead of CCZmode.
4437         * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
4438
4439 2006-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
4440
4441         * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
4442         pattern.
4443         ("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.
4444
4445 2005-07-13  Eric Christopher  <echristo@redhat.com>
4446
4447         * config/mips/mips.c (mips_canonicalize_comparison): New.
4448         (mips_emit_int_relational): Use.
4449
4450 2005-07-13  Eric Christopher  <echristo@redhat.com>
4451
4452         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
4453         static extra parts.
4454         * config/s390/s390.md: Include tpf.md. Move tpf specific
4455         patterns...
4456         * config/s390/tpf.md: To here.
4457         * config/s390/s390.opt: Move tpf specific options...
4458         * config/s390/tpf.opt: to here. Add mmain option.
4459         * config/s390/tpf-unwind.h: Remove unnecessary defines.
4460         * config/s390/tpf.h: Rewrite.
4461
4462 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4463
4464         * doc/tm.texi: Remove @xref{Cross-profiling}.
4465
4466 2005-07-13  Jeff Law  <law@redhat.com>
4467
4468         * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
4469         expressions, test their _DECL operands for pointer equality rather
4470         than using operand_equal_p.
4471
4472 2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4473
4474         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
4475         (TARGET_POSIX_IO): This.
4476         * config/darwin.h: Likewise.
4477         * config/freebsd.h: Likewise.
4478         * config/linux.h: Likewise.
4479         * config/lynx.h: Likewise.
4480         * config/netbsd.h: Likewise.
4481         * config/rs6000/linux64.h: Likewise.
4482         * config/rs6000/linux.h: Likewise.
4483         * config/s390/tpf.h: Likewise.
4484         * config/sh/embed-elf.h: Likewise.
4485         * config/sparc/linux64.h: Likewise.
4486         * config/sparc/linux.h: Likewise.
4487         * config/svr4.h: Likewise.
4488         * gcov-io.h: Likewise.
4489
4490         * doc/tm.texi: Updated.
4491
4492         * libgcov.c (create_file_directory): Defined only if
4493         TARGET_POSIX_IO is defined.
4494         (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
4495         is defined.
4496
4497 2005-07-13  Jan Hubicka  <jh@suse.cz>
4498
4499         * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.
4500
4501 2005-07-13  David Edelsohn  <edelsohn@gnu.org>
4502
4503         * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
4504         structure as argument.
4505
4506 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
4507
4508         PR tree-optimization/21921
4509         * tree-iterator.c (tsi_link_before): Support the case when
4510         tsi_end_p (tsi) == true.
4511
4512 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
4513
4514         PR tree-optimization/22442
4515         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
4516         correctly.
4517
4518 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
4519
4520         PR rtl-optimization/20376
4521         * toplev.c (process_options): Enable -fweb and -frename-registers when
4522         unrolling.
4523         * doc/invoke.texi: Update the information about when -fweb and
4524         -frename-registers are enabled.
4525
4526 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
4527
4528         PR tree-opt/21840
4529         * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
4530         if *rhs_p is not a SSA_NAME.
4531
4532 2005-07-12  Daniel Berlin  <dberlin@dberlin.org>
4533
4534         Fix PR tree-optimization/22422
4535         * tree-ssa-structalias.c (struct variable_info): Add flag for
4536         special vars.
4537         (get_varinfo): Now a static function.
4538         (new_varinfo): init has_union and is_special_var to false.
4539         (solution_set_add): Check has_union.
4540         (do_da_constraint): Move temporary variable so it gets reset
4541         properly.
4542         Also check for special variable.
4543         (do_ds_constraint): Ditto.
4544         (do_sd_constraint): Ditto.
4545         (do_structure_copy): Check for special variable.
4546         (find_func_aliases): Ditto.
4547         (init_base_vars): Set special vars properly.
4548
4549 2005-07-13  Jan Hubicka  <jh@suse.cz>
4550
4551         * cfgexpand.c (expand_one_stack_var): Do not expand variables when we
4552         do unit-at-a-time.
4553
4554         * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
4555         (get_expr_operands): Fix thinko wrt flags and subvars.
4556
4557         PR tree-optimize/22379
4558         * tree-inline.c (expand_call_inline): Do not output sorry in early
4559         inlining.
4560
4561 2005-07-12  Dale Johannesen  <dalej@apple.com>
4562
4563         * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
4564
4565 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
4566
4567         PR bootstrap/21704
4568         * host-linux.h: Include limits.h.
4569
4570 2005-07-12  Dale Johannesen  <dalej@apple.com>
4571
4572         * expr.c (compress_float_constant):  Add cost check.
4573         * config/rs6000.c (rs6000_rtx_cost):  Adjust FLOAT_EXTEND cost.
4574
4575 2005-07-12  Dale Johannesen  <dalej@apple.com>
4576
4577         * gcc.target/i386/compress-float-sse.c:  New.
4578         * gcc.target/i386/compress-float-sse-pic.c:  New.
4579         * gcc.target/i386/compress-float-387.c:  New.
4580         * gcc.target/i386/compress-float-387-pic.c:  New.
4581         * gcc.dg/compress-float-ppc.c:  New.
4582         * gcc.dg/compress-float-ppc-pic.c:  New.
4583
4584 2005-07-12  Eric Christopher  <echristo@redhat.com>
4585
4586         * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
4587         static extra parts.
4588         * config/s390/s390.md: Include tpf.md. Move tpf specific
4589         patterns...
4590         * config/s390/tpf.md: To here.
4591         * config/s390/s390.opt: Move tpf specific options...
4592         * config/s390/tpf.opt: to here. Add mmain option.
4593         * config/s390/tpf-unwind.h: Remove unnecessary defines.
4594         * config/s390/tpf.h: Rewrite.
4595
4596 2005-07-12  Eric Christopher  <echristo@redhat.com>
4597
4598         * gcc.c (struct infile): Update comment for language.
4599         (main): Rewrite input file resetting code.
4600
4601 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
4602
4603         PR tree-opt/22335
4604         * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
4605         requiring a cast in a non RHS of modify_expr.  Add a cast when required.
4606         (lookup_avail_expr): Use constant_boolean_node instead
4607         of boolean_false_node/boolean_true_node.
4608
4609 2005-07-12  Ben Elliston  <bje@au.ibm.com>
4610
4611         * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
4612         and use it when printing num_edges.
4613
4614 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
4615
4616         * doc/extend.texi (Blackfin Built-in Functions): New section.
4617         * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
4618         @opindex.
4619
4620 2005-07-12  Adrian Straetling  <straetling@de.ibm.com>
4621
4622         * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
4623         s/cmpstrsi/cmpstrnsi
4624         (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
4625         'cmpstrnsi'.
4626         * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
4627         (init_optabs): Initialize cmpstrn_optab.
4628         * optabs.h: (enum insn_code cmpstrn_optab): Declare.
4629         * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
4630         * expr.c: (enum insn_code cmpstrn_optab): Declare.
4631         * config/i386/i386.md: s/cmpstr/cmpstrn
4632         * config/c4x/c4x.md: s/cmpstr/cmpstrn
4633         * doc/md.texi: Update documentation.
4634
4635 2005-07-11  Richard Henderson  <rth@redhat.com>
4636
4637         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
4638         build_va_arg_indirect_ref.
4639         (alpha_gimplify_va_arg): Likewise.
4640         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
4641         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
4642         * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
4643         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
4644         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
4645         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
4646         Likewise.
4647         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
4648
4649 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
4650
4651         * tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
4652         * passes.c (init_optimization_passes): Add pass_empty_loop.
4653         * tree-pass.h (pass_empty_loop): Declare.
4654         * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
4655         try_remove_empty_loop, remove_empty_loops): New functions.
4656         * tree-ssa-loop-ivopts.c (single_dom_exit): Export.
4657         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.
4658
4659 2005-07-12  Peter Barada  <peter@the-baradas.com>
4660
4661         PR middle-end/16719
4662         PR middle-end/18421
4663         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
4664         in address registers.
4665         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
4666         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
4667         alternative of addsi3_5200.
4668
4669 2005-07-11  Ian Lance Taylor  <ian@airs.com>
4670
4671         * config/mips/mips.md (ffs<mode>2): Remove.
4672
4673 2005-07-11  Ian Lance Taylor  <ian@airs.com>
4674
4675         * doc/tree-ssa.texi (Cleanups): Improve description of
4676         TRY_FINALLY_EXPR.
4677         (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.
4678
4679 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
4680
4681         * print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
4682         * tree.h (DECL_ARGUMENT_FLD): New macro.
4683
4684 2005-07-11  Daniel Berlin  <dberlin@dberlin.org>
4685
4686         Fix PR tree-optimization/22404
4687
4688         * tree-ssa-structalias.c (create_variable_info_for): Use
4689         correct offset.
4690
4691 2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4692
4693         * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
4694         compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
4695         for second comparison operand.
4696         * config/bfin/predicates.md (reg_or_const_int_operand): New.
4697
4698         * config/bfin/bfin.md (define_attr "type"): Add "sync".
4699         (define_insn_reservation "alu"): Likewise.
4700         (csync, ssync): Now of type sync.
4701         * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
4702         -mcsync-anomaly -mspecld-anomaly.
4703         * config/bfin/bfin.opt (mcsync): Remove.
4704         (mcsync-anomaly, mspecld-anomaly): Add.
4705         * config/bfin/bfin.c: Include "insn-codes.h".
4706         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
4707         (TARGET_DEFAULT_TARGET_FLAGS): New.
4708         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
4709
4710 2005-07-11  Steven Bosscher  <stevenb@suse.de>
4711
4712         * basic-block.h: Give the BB flags enum a name, bb_flags.
4713         Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
4714         * cfgcleanup.c (enum bb_flags): Remove here.
4715         (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
4716         (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
4717         (update_forwarder_flag): Likewise.
4718         (thread_jump): Likewise.
4719         (try_forward_edges): Likewise.
4720         (try_optimize_cfg): Likewise.  Clear bb->flags before updating the
4721         forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
4722         reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.
4723
4724 2005-07-11  Richard Guenther  <rguenther@suse.de>
4725
4726         * config/i386/i386.opt: New target option -msseregparm.
4727         * config/i386/i386.c (override_options): Error out for
4728         -msseregparm but no SSE support.
4729         (ix86_function_sseregparm): Check for global sseregparm.
4730         * doc/invoke.texi: Document -msseregparm.
4731
4732 2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4733
4734         * config.gcc (m32r-*-linux*): Use the default extra_parts.
4735         (m32rle-*-linux*): Ditto.
4736
4737 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
4738
4739         * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
4740         instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
4741         bytes.
4742
4743 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4744
4745         PR middle-end/22239
4746         PR target/20126
4747         * loop.c (loop_givs_rescan): Use expand_simple_binop instead of
4748         gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).
4749
4750 2005-07-07  Daniel Berlin  <dberlin@dberlin.org>
4751
4752         * tree-ssa-structalias.c (struct variable_info): Heapify complex.
4753         (varmap): Heapify varmap.
4754         (constraints): Heapify constraints.
4755         (struct constraint_graph): Heapify succs and preds.
4756         (constraint_vec_find): Update for heapification.
4757         (constraint_set_union): Ditto.
4758         (insert_into_complex): Ditto.
4759         (constraint_edge_vec_find): Ditto.
4760         (erase_graph_self_edge): Ditto.
4761         (add_graph_edge): Ditto.
4762         (get_graph_weights): Ditto.
4763         (merge_graph_nodes): Ditto.
4764         (build_constraint_graph): Ditto.
4765         (topo_visit): Ditto.
4766         (solve_graph): Ditto.
4767         (create_variable_info_for): Ditto.
4768         (init_base_vars): Ditto.
4769         (delete_points_to_sets): Free graph, varmap, and complex constraints.
4770         (condese_varmap_nodes): Free complex vector.
4771         (clear_edges_for_node): Clear succs and preds vector.
4772
4773 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
4774
4775         * tree-ssa-structalias.c (update_alias_info): Change counting of
4776         references to not include vdefs.
4777
4778 2005-07-10  Daniel Berlin  <dberlin@dberlin.org>
4779
4780         * tree-ssa-alias.c (free_used_part_map): Add missing free.
4781         (up_insert): Ditto.
4782
4783 2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4784
4785         * pa.c (pa_commutative_p): Make PLUS commutative when
4786         TARGET_NO_SPACE_REGS is true.
4787
4788 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
4789
4790         * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
4791         * tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
4792         * tree-dfa.c (dump_subvars_for): New.
4793         (debug_subvars_for): New.
4794         (dump_variable): Show subvariables if VAR has them.
4795         * tree-flow-inline.h (get_subvar_at): New.
4796         (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
4797         * tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
4798         Update all users.
4799         (struct subvar): Change fields offset and size to unsigned
4800         HOST_WIDE_INT.
4801         (dump_subvars_for): Declare.
4802         (debug_subvars_for): Declare.
4803         (get_subvar_at): Declare.
4804         (okay_component_ref_for_subvars): Change 2nd and 3rd argument
4805         to unsigned HOST_WIDE_INT *.
4806         (overlap_subvar): Likewise.
4807         * tree-gimple.c (is_gimple_reg): Always return false for
4808         SFTs and memory tags.
4809         * tree-pass.h (pass_build_pta, pass_del_pta): Remove.
4810         Update all callers.
4811         * tree-ssa-alias.c: Include tree-ssa-structalias.h.
4812         (compute_may_aliases): Call compute_points_to_sets.
4813         (collect_points_to_info_for): Remove.
4814         (compute_points_to_and_addr_escape): Remove.
4815         (delete_alias_info): Call delete_points_to_sets.
4816         (compute_flow_sensitive_aliasing): If the call to
4817         find_what_p_points_to returns false, call set_pt_anything.
4818         (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
4819         (set_pt_anything): Clear pi->pt_vars.
4820         (set_pt_malloc): Remove.
4821         (merge_pointed_to_info): Remove.
4822         (add_pointed_to_expr): Remove.
4823         (add_pointed_to_var): Remove.
4824         (collect_points_to_info_r): Remove.
4825         (is_escape_site): Make extern.
4826         (create_sft): New.
4827         (create_overlap_variables_for): Call it.
4828         * tree-ssa-copy.c (merge_alias_info): Never merge
4829         flow-sensitive alias information.
4830         * tree-ssa-operands.c (get_expr_operands): Adjust variables
4831         offset and size to be unsigned HOST_WIDE_INT.
4832         (add_to_addressable_set): Rename from note_addressable.
4833         Set TREE_ADDRESSABLE as the variables are added to the set.
4834         Update all users.
4835         (add_stmt_operand): Do not try to micro-optimize unmodifiable
4836         operands into VUSEs when adding V_MAY_DEFs for members in an
4837         alias set.
4838         * tree-ssa-operands.h (add_to_addressable_set): Declare.
4839         * tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
4840         (struct variable_info): Add bitfield is_heap_var.
4841         (var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
4842         (new_var_info): Initialize is_heap_var.
4843         (get_constraint_for): Add HEAP variables to the symbol table.
4844         Mark them with is_heap_var.
4845         (update_alias_info): New.  Taken mostly from the old
4846         compute_points_to_and_addr_escape.
4847         (handle_ptr_arith): New.
4848         (find_func_aliases): Call update_alias_info.
4849         Call handle_ptr_info for tcc_binary expressions.
4850         Call mark_stmt_modified.
4851         (create_variable_info_for): If DECL has subvars, do not create
4852         variables for its subvars.  Always add all the fields.
4853         (set_uids_in_ptset): If the solution includes ANYOFFSET and
4854         SFTs, then add all the SFTs of the structure.
4855         If VI->DECL is an aggregate with subvariables, add the SFT at
4856         VI->OFFSET.
4857         (find_what_p_points_to): If VI is an artificial variable,
4858         translate to bitfields in SSA_NAME_PTR_INFO.
4859         If the solution is empty, set pi->pt_vars to NULL
4860         (init_base_vars): Create ANYOFFSET.
4861         (compute_points_to_sets): Rename from create_alias_vars.
4862         Make extern.
4863         (pass_build_pta): Remove.
4864         (delete_points_to_sets): Rename from delete_alias_vars.
4865         (pass_del_pta): Remove.
4866         * tree-ssa-structalias.h (struct alias_info): Move from
4867         tree-ssa-alias.h.
4868         (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
4869         NUM_REFERENCES_SET): Likewise.
4870         (compute_points_to_sets, delete_points_to_sets): Declare.
4871
4872 2005-07-09  Richard Henderson  <rth@redhat.com>
4873
4874         * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
4875         alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
4876         alpha_split_lock_test_and_set_12): New functions.
4877         * config/alpha/alpha-protos.h: Update.
4878         * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
4879         UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
4880         * config/alpha/sync.md (I12MODE): New.
4881         (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
4882         (sync_<fetchop_name><I48MODE>): Likewise.
4883         (sync_nand<I48MODE>): Likewise.
4884         (sync_old_<fetchop_name><I48MODE>): Likewise.
4885         (sync_new_<fetchop_name><I48MODE>): Likewise.
4886         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
4887         (sync_compare_and_swap<I48MODE>): Likewise.
4888         (sync_lock_test_and_set<I48MODE>): Likewise.
4889         (sync_compare_and_swap<I12MODE>): New.
4890         (sync_compare_and_swap<I12MODE>_1): New.
4891         (sync_lock_test_and_set<I12MODE>): New.
4892         (sync_lock_test_and_set<I12MODE>_1): New.
4893
4894 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
4895
4896         PR 21356
4897         PR 22332
4898         * passes.c (execute_todo): Cleanup the CFG before updating SSA.
4899
4900 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
4901
4902         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
4903         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
4904
4905 2005-07-09  Richard SAndiford  <richard@codesourcery.com>
4906
4907         PR target/21656
4908         * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
4909
4910 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
4911
4912         * config/rs6000/sync.md (load_locked_<mode>): Use Z for
4913         memory_operand constraint.
4914         (store_conditional_<mode>): Same.
4915         (sync_compare_and_swap<mode>): Same.
4916         (sync_lock_test_and_set<mode>): Same.
4917
4918 2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
4919
4920         Rewrite PIC support to more closely model actual instructions.
4921         * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
4922         (cris_symbol): Remove prototypes for removed functions.
4923         (cris_pic_symbol_type_of, cris_valid_pic_const)
4924         (cris_expand_pic_call_address): Prototypes for new functions.
4925         * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
4926         variable.
4927         (cris_print_operand) <case 'v', 'P'>: Remove cases for unused
4928         modifiers.
4929         <case ':'>: Add case for new punctuation character.
4930         <case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
4931         emitting (extra) PIC modifier.
4932         <case UNSPEC>: Do not assert for PLT.
4933         (cris_initial_frame_pointer_offset, cris_simple_epilogue)
4934         (cris_expand_prologue, cris_expand_epilogue): Check
4935         for pic_offset_table_rtx usage instead of taking
4936         current_function_uses_pic_offset_table as the final word.
4937         (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
4938         Remove flag_pic difference.
4939         (cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
4940         the moral equivalents of...
4941         (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
4942         functions.
4943         (cris_legitimate_pic_operand): Just call cris_valid_pic_const.
4944         (cris_handle_option): Mark ARG as unused.
4945         (cris_expand_pic_call_address): New worker function for "call",
4946         "call_value".
4947         (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
4948         output PIC constructs here.
4949         (cris_output_addr_const_extra): Changes for emitting PIC modifiers
4950         as symbol-specific modifers, not whole or part of operands.
4951         * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
4952         (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
4953         constants and flag_pic.
4954         (CONSTANT_INDEX_P): Adjust for new functions.
4955         (enum cris_pic_symbol_type): New helper type.
4956         (PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
4957         * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
4958         (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
4959         define_constants.
4960         ("movsi"): Emit actual instructions for GOT and relative access.
4961         ("*movsi_got_load"): New pattern to set up the register holding
4962         the GOT pointer.
4963         ("*movsi_internal"): Operand 1 is not a plain general_operand.
4964         Adjust FIXME for 'S'.
4965         <output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
4966         Use "movs" for -fpic cases.
4967         ("addsi3"): Add alternative for 'S'; use adds.w when possible.
4968         ("uminsi3","*expanded_call_value"): Remove 'S' alternative.
4969         ("call", "call_value"): Just call cris_expand_pic_call_address for
4970         PIC addresses.
4971         ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
4972         Remove special pattern.
4973         ("*expanded_call_side", "*expanded_call_value_side"): New
4974         patterns.
4975         (gotplt-to-plt, gotplt-to-plt-side-call)
4976         (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
4977         peephole2:s.
4978         * config/cris/cris/predicates.md
4979         ("cris_general_operand_or_gotless_symbol"): Remove unused
4980         predicate.
4981         ("cris_general_operand_or_symbol"): Adjust for new functions.
4982
4983 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
4984
4985         * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
4986
4987 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
4988
4989         * Makefile.in (TREE_H): Add treestruct.def.
4990         (c-decl.o): Add pointer-set.h
4991         * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
4992         visibility on regular DECL's.
4993         (merge_decls): Fix the copying of decl nodes of various types for
4994         the new structures.  Don't update RTL, section name, weak status,
4995         etc, on DECL's without RTL.
4996         (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
4997         Don't check volatile on non-variable types.
4998         (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
4999         to check whether we have seen arguments.
5000         * c-objc-common.c (c_tree_printer): Reverse order of tests so that
5001         flag is checked before field (flag is common, field is not).
5002         * dwarf2out.c (decl_ultimate_origin):  Only DECL's with
5003         TS_DECL_COMMON could have an origin.
5004         (add_location_or_const_value_attribute): Don't check section name
5005         on non-var/function decls.
5006         (dwarf2out_var_location): Reverse order of tests.
5007         * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
5008         with DECL_WRTL_CHECK.
5009         * expmed.c (make_tree): rtl is now in decl_with_rtl.
5010         * fold-const.c (fold_binary): Don't check weakness on
5011         non-var/function decls.
5012         (tree_expr_nonzero_p): Ditto.
5013         (fold_checksum_tree): Use tree_decl_extra as sizeof
5014         buffer.
5015         * ggc-page.c (extra_order_size_table): Add sizes for
5016         tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
5017         tree_field_decl.
5018         * gimplify.c (gimplify_bind_expr): Only set
5019         DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
5020         * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
5021         without RTL.
5022         * langhooks-def.h (LANG_HOOK_INIT_TS): New.
5023         * langhooks.h (init_ts). New langhook.
5024         * passes.c (rest_of_decl_compilation): Reverse order of tests.
5025         * print-tree.c (print_node): Update to only print fields that
5026         exist in the structures the passed decl has.
5027         * toplev.c (wrapup_global_declarations): Don't reset
5028         DECL_DEFER_OUTPUT on DECL's that don't contain it.
5029         * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
5030         * tree-inline.c (remap_decl): Ditto.
5031         * tree-outof-ssa.c (create_temp): Reverse order of tests.
5032         * tree-pretty-print.c (print_declaration): Don't print
5033         DECL_REGISTER on things that don't contain it.
5034         * tree-vrp.c (expr_computes_nonzero): Don't check weakness on
5035         non-var/function decls.
5036         * tree.c (tree_contains_struct): New structure.
5037         (init_priority_for_decl): New hashtable.
5038         (tree_int_map): New structure.
5039         (tree_int_map_eq): New function.
5040         (tree_int_map_marked_p): Ditto.
5041         (tree_int_map_hash): Ditto.
5042         (tree_map): Move to tree.h.
5043         (tree_map_eq): Externalize.
5044         (tree_map_hash): Ditto.
5045         (tree_map_marked_p): Ditto.
5046         (init_ttree): Set up tree_contains_struct and call langhook.
5047         (decl_assembler_name): Use DECL_NON_COMMON_CHECK..
5048         (tree_code_size): Update for new structures.
5049         (tree_node_structure): Update for new structures.
5050         (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
5051         without the field.
5052         (copy_node_stat):  Copy init priority.
5053         (build_decl_stat): Ditto for visibility.
5054         (ts_enum_names): New.
5055         (tree_contains_struct_check_failed): New function.
5056         (decl_init_priority_lookup): Ditto.
5057         (decl_init_priority_insert): Ditto.
5058         * treestruct.def: New file.
5059         * tree.h (CODE_CONTAINS_STRUCT): New macro.
5060         (CONTAINS_STRUCT_CHECK): Ditto.
5061         (tree_contains_struct_check_failed): New prototype.
5062         (DECL_CHECK): Removed.
5063         (DECL_MINIMAL_CHECK): New.
5064         (DECL_COMMON_CHECK): Ditto.
5065         (DECL_WRTL_CHECK): Ditto.
5066         (DECL_NON_COMMON_CHECK): Ditto.
5067         (DECL_WITH_VIS_CHECK): Ditto.
5068         (VAR_OR_FUNCTION_DECL_P): Ditto
5069         (struct tree_decl_minimal): New structure.
5070         (struct tree_decl_common): Ditto.
5071         (struct tree_decl_with_rtl): Ditto.
5072         (struct tree_decl_with_vis): Ditto.
5073         (struct tree_decl_non_common): Ditto.
5074         (struct tree_field_decl): Ditto.
5075         (struct tree_parm_decl): Ditto.
5076         (struct tree_var_decl): Ditto.
5077         (struct tree_function_decl): Ditto.
5078         (struct tree_const_decl): Ditto.
5079         (struct tree_result_decl): Ditto.
5080         (union tree_node): Add new structures.
5081         * var-tracking.c (track_expr_p): Reverse order of tests.
5082
5083         * doc/c-tree.texi: Add documentation on DECL node internal structure.
5084
5085 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
5086
5087         * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
5088         * system.h: Poison FINALIZE_PIC.
5089         * doc/tm.texi (FINALIZE_PIC): Remove.
5090
5091 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
5092
5093         PR tree-opt/22329
5094         * tree-ssa-propagate.c (fold_predicate_in): Convert the value
5095         to the correct type if we have a MODIFY_EXPR.
5096
5097 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
5098
5099         PR tree-optimization/22360
5100         * tree.c (upper_bound_in_type): Fix calculations for casting
5101         to a non-wider signed type and casting a signed value to a
5102         wider unsigned type.
5103         (lower_bound_in_type): Fix calculations for casting to a
5104         non-wider signed type.
5105
5106         PR tree-optimization/20139
5107         * tree-cfg.c (remove_bb): Check in_ssa_p before calling
5108         release_defs.
5109         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
5110         fold_cond_expr_cond.
5111         * tree-ssanames.c (release_defs): Assert in_ssa_p.
5112         * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
5113
5114 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
5115
5116         PR tree-opt/22356
5117         * tree-complex.c (expand_complex_libcall): Produce
5118         REALPART_EXPR/IMAGPART_EXPR with the correct type.
5119
5120 2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
5121
5122         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
5123         bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
5124         b" assert and inserted fastpath code for this case.
5125         (bitmap_ior): Removed "a != b" assert.
5126
5127 2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
5128
5129         * config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
5130         (ENDFILE_SPEC): Likewise.
5131         * config/m32r/m32r.h (ASM_SPEC): Likewise.
5132
5133         * config/m32r/m32r.c (m32r_output_function_epilogue): Care for
5134         a large stack frame at epilogue.
5135
5136 2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
5137
5138         * final.c: Include sdbout.h when required.
5139
5140 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
5141
5142         * config.gcc (*-*-darwin*): Only one target-specific header file
5143         for generic darwin.
5144         (powerpc-*-darwin*): Add version-specific header files.
5145         * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
5146         * config.in: Regenerate.
5147         * configure: Regenerate.
5148         * gcc.c: Include xregex.h.
5149         (version_compare_spec_function): New.
5150         (spec_function): Add version-compare.
5151         (replace_outfile_spec_function): Reformat comment.
5152         (compare_version_strings): New.
5153         * config/darwin-c.c (version_as_macro): New.
5154         (builtin_define): New.
5155         (darwin_cpp_builtins): New.
5156         * config/darwin-protos.h (darwin_cpp_builtins): New.
5157         * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
5158         (LIB_SPEC): Make unconditional, update comment.
5159         (TARGET_C99_FUNCTIONS): Define.
5160         * config/darwin.opt: Sort.
5161         (mmacosx-version-min=): New.
5162         * config/darwin7.h: Delete.
5163         * config/darwin8.h: Delete.
5164         * config/i386/darwin.h (): Call darwin_cpp_builtins.
5165         * config/rs6000/darwin.h (): Call darwin_cpp_builtins.
5166         (TARGET_C99_FUNCTIONS): Define.
5167         * config/rs6000/darwin7.h: New.
5168         * config/rs6000/darwin8.h: New.
5169         * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
5170         (-mmacosx-version-min): Document.
5171
5172 2005-07-07  Ian Lance Taylor  <ian@airs.com>
5173
5174         * config/mips/mips.md (abs<mode>2) [GPR]: Remove.
5175
5176 2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
5177
5178         PR middle-end/22239
5179         * loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
5180
5181 2005-07-07  Khem Raj  <kraj@mvista.com>
5182
5183         * config/arm/arm.c (thumb_output_function_prologue): Calculate offset
5184         in bytes, not words.
5185
5186 2005-07-07  Paul Brook  <paul@codesourcery.com>
5187
5188         * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
5189         DEFAULT_FUNCTION_ARG_PADDING to upward.
5190
5191 2005-07-07  Richard Henderson  <rth@redhat.com>
5192
5193         * function.c (locate_and_pad_parm): Record parameter alignment in
5194         stack_alignment_needed.
5195
5196 2005-07-07  David Edelsohn  <edelsohn@gnu.org>
5197
5198         * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
5199         UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
5200         (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
5201         UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
5202         (define_attr "type"): Add isync, sync, load_l, store_c.
5203         * config/rs6000/sync.md (memory_barrier): Change to define_expand.
5204         Create scratch volatile MEM.
5205         (sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
5206         sync.
5207         (load_locked_<mode>): New.
5208         (store_conditional_<mode>): New.
5209         (sync_compare_and_swap<mode>): Replace with splitter.
5210         (sync_lock_test_and_set<mode>): Replace with splitter.
5211         (sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
5212         and UNSPECV_ISYNC.
5213         (isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
5214         is ics.  Attribute isync.
5215         (lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
5216         lwsync.
5217         * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
5218         and UNSPECV_SYNC_OP.
5219         (emit_unlikely_jump): New.
5220         (emit_load_locked): New.
5221         (emit_store_conditional): New.
5222         (rs6000_split_compare_and_swap): New.
5223         (rs6000_split_lock_test_and_set): New.
5224         (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
5225         TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
5226         * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
5227         rs6000_split_lock_test_and_set): Declare.
5228         * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
5229         mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
5230         store_c, isync, sync.
5231
5232 2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
5233
5234         * Makefile.in (echo_quoted_to_gtyp): New template for outputing
5235         filenames to gtyp-gen.h.
5236         (s-typ-gen): Use it in place of for loops.
5237
5238 2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
5239
5240         * hooks.c (hook_bool_rtx_int_false): New function.
5241         * hooks.h (hook_bool_rtx_int_false): Declare.
5242         * target-def.h (TARGET_COMMUTATIVE_P): Define.
5243         (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
5244         * target.h (struct gcc_target): Add commutative_p member.
5245         * targhooks.c (hook_bool_rtx_commutative_p): New function.
5246         * targhooks.h (hook_bool_rtx_commutative_p): Declare.
5247         * pa.c (TARGET_COMMUTATIVE_P): Redefine.
5248         (pa_commutative_p): New function.
5249         * jump.c (target.h): Include.
5250         (rtx_renumbered_equal_p): Use targetm.commutative_p.
5251         * doc/tm.texi: Document TARGET_COMMUTATIVE_P.
5252
5253 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
5254
5255         * config/s390/s390-protos.h (s390_expand_clrmem): Delete.
5256         (s390_expand_setmem): New.
5257         * config/s390/s390.c: Likewise.
5258         (print_shift_count_operand): Truncate to 12 bits instead of 6.
5259         Adapt comments.
5260         * config/s390/s390.md: ("setmem<mode>"): Accept character as
5261         general_operand.  Call new function "s390_expand_setmem".
5262         ("clrmem_long", "*clrmem_long"): Rewrite to ...
5263         ("setmem_long", "*setmem_long"): ... this.
5264
5265 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
5266
5267         * config/s390/s390.c: (optimization_options): Enable
5268         TARGET_MVCLE at -Os.
5269         * doc/invoke.texi: Document changes in default behaviour.
5270         * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
5271
5272 2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
5273
5274         * expr.c: (set_storage_via_setmem): Convert opchar to mode
5275         defined by back-end.
5276
5277 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
5278
5279         * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
5280         all sets in the pattern.
5281         * config/rs6000/rs6000.md (stack_protect_testsi,
5282         stack_protect_testdi): Likewise.
5283
5284 2005-07-06  Jeff Law  <law@redhat.com>
5285
5286         * tree-vrp.c (simplify_using_ranges): Kill.
5287         (vrp_finalize): Remove call to simplify_using_ranges.
5288         (simplify_stmt_using_ranges): New function extracted from
5289         simplify_using_ranges.
5290         (simplify_div_or_mod_using_ranges): Likewise.
5291         (simplify_abs_using_ranges): Likewise.
5292         (simplify_cond_using_ranges): New function.
5293         * tree-flow.h (simplify_stmt_using_ranges): Prototype.
5294         * tree-ssa-propagate.c (substitute_and_fold): Call
5295         simplify_stmt_using_ranges if we have range information.
5296
5297 2005-07-06  James E. Wilson  <wilson@specifixinc.com>
5298
5299         * config/ia64/ia64.c (ia64_reorg): Check optimize before
5300         ia64_flag_schedule_isns2.
5301
5302         * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
5303         reading/writing general registers.
5304         (ia64_function_arg): Revert 2005-06-18 change.
5305
5306 2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
5307
5308         * pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
5309         (legitimize_tls_address): Use gcc_unreachable instead of abort.
5310
5311 2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
5312
5313         * function.c (expand_function_end): Revert part of 2005-06-27
5314         patch.  Do sjlj_emit_function_exit_after after return_label.
5315
5316 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
5317
5318         * doc/install.texi (--disable-libssp): New.
5319
5320 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
5321
5322         * doc/invoke.texi: Update -fforce-mem documentation.
5323         * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
5324         code for -fforce-mem.
5325         * expmed.c: (store_bit_field,store_fixed_bit_field,
5326         extract_bit_field): Ditto.
5327         * expr.c: (convert_move): Ditto.
5328         * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
5329         expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
5330         emit_conditional_add,expand_float,expand_fix): Ditto.
5331         * opts.c: (decode_options): Remove setting of flag_force_mem flag.
5332         (common_handle_option): Issue warning when -fforce-mem specified.
5333
5334 2005-07-06  Paul Brook  <paul@codesourcery.com>
5335
5336         * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
5337         argument is empty.
5338         * configure: Regenerate.
5339
5340 2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
5341
5342         * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
5343
5344 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
5345
5346         Fix PR tree-optimization/22319
5347         Fix PR tree-optimization/22140
5348         Fix PR tree-optimization/22310
5349
5350         * tree-ssa-structalias.c (do_structure_copy): Give up earlier on
5351         variable sized types.
5352         Use correct type for intermediate structure on *a = *b structure
5353         copies.
5354
5355 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
5356
5357         * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
5358         Remove.
5359         (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
5360         (machine_function): Move typedef to...
5361         * config/rs6000/rs6000.c (machine_function): ... here.  Add
5362         varargs_save_offset field.
5363         (rs6000_stack_t): Remove varargs_size field.
5364         (setup_incoming_varargs): Allocate varargs save area using
5365         assign_stack_local, try to make it as small as possible.
5366         Save offset from virtual_stack_vars_rtx to the save area
5367         in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
5368         instead of magic 8 when fp word byte size is used.
5369         (rs6000_va_start): Use cfun->machine->varargs_save_offset
5370         instead of -RS6000_VARARGS_SIZE.
5371         (rs6000_stack_info, debug_stack_info,
5372         rs6000_initial_elimination_offset): Remove all traces of
5373         varargs_size.
5374         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
5375         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
5376         RS6000_VARARGS_AREA.
5377
5378 2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>
5379
5380         PR tree-optimization/21963
5381         * tree-ssa-loop-ivopts.c (get_computation_aff): Use
5382         constant_multiple_of in the same way get_computation_cost_at does.
5383
5384 2005-07-06  Jakub Jelinek  <jakub@redhat.com>
5385
5386         * config/sparc/sparc.h (sparc_compare_emitted): New extern.
5387         * config/sparc/sparc.c (sparc_compare_emitted): New variable.
5388         (gen_compare_reg): If sparc_compare_emitted is set, clear it
5389         and return its previous value.
5390         (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
5391         * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
5392         constants.
5393         (stack_protect_set, stack_protect_test): New expanders.
5394         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
5395         stack_protect_testdi): New insns.
5396         * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
5397         * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
5398
5399 2005-07-06  Jeff Law  <law@redhat.com>
5400
5401         * tree-ssa-dce.c (cfg_altered): New global.
5402         (tree_dce_init): Initialize cfg_altered.
5403         (remove_dead_stmt): If we remove an edge in the CFG, then set
5404         CFG_ALTERED.
5405         (perform_tree_ssa_dce): If we altered the CFG, then invalidate
5406         the dominators.
5407
5408 2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
5409
5410         * Makefile.in (stamp-collect-ld): Use
5411         $(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
5412         ./collect-ld if it already exists.
5413         (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
5414         Don't remove ./nm if it already exists.
5415
5416 2005-07-05  Devang Patel  <dpatel@apple.com>
5417
5418         * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
5419         (LOOP_VINFO_LOC, LOOP_LOC): Remove.
5420         * tree-vectorizer.c (vect_loop_location): New.
5421         (vect_print_dump_info): Use vect_loop_location.
5422         (new_loop_vec_info): Do not set LOOP_VINFO_LOC.
5423         (vectorize_loops): Set vect_loop_location.
5424         * tree-vect-analyze.c (vect_analyze_offset_expr,
5425         vect_determin_vectorization_factor, vect_analyze_operations,
5426         vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
5427         vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
5428         vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
5429         vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
5430         vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
5431         vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
5432         vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
5433         vect_analyze_loop): Adjust vect_print_dump_info API.
5434         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
5435         vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
5436         vect_finish_stmt_generation, vectorizable_assignment,
5437         vectorizable_operation, vectorizable_store, vectorizable_load,
5438         vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
5439         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
5440         vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
5441         vect_transform_loop): Same.
5442         * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
5443         vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
5444         Same.
5445
5446 2005-07-05  Randolph Chung  <tausq@debian.org>
5447
5448         * configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
5449         * configure: Regenerate.
5450         * config/pa/pa-protos.h (tls_symbolic_operand): Declare.
5451         (pa_tls_referenced_p): Declare.
5452         * config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
5453         (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
5454         (legitimize_tls_address): New.
5455         (hppa_legitimize_address): Handle TLS addresses.
5456         (pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
5457         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
5458         (emit_move_sequence): Handle TLS addresses.
5459         (pa_encode_section_info): Call default handler to handle common
5460         sections.
5461         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
5462         (CONSTANT_ADDRESS_P): Reject TLS operands.
5463         (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
5464         * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
5465         (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
5466         (UNSPEC_TLSLE): Define new constants.
5467         (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
5468         * config/pa/predicates.md (symbolic_operand): Reject TLS operands.
5469         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
5470         (tie_symbolic_operand, tle_symbolic_operand): New
5471
5472 2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>
5473
5474         * aclocal.m4: Update macros for autoconf 2.59 style.
5475         * configure.ac: Likewise.
5476
5477 2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5478
5479         * pa.c (function_value): Handle small aggregates on 32-bit targets.
5480         (function_arg): Pass small aggregates in general registers on 32-bit
5481         targets.
5482         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
5483
5484 2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>
5485
5486         * Makefile.in (final.o): Fix dependencies.
5487
5488 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
5489
5490         PR c/22013
5491         PR c/22098
5492         * langhooks.h (struct lang_hooks): Add expr_to_decl.
5493         * langhooks.c (lhd_expr_to_decl): New.
5494         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
5495         New.
5496         (LANG_HOOKS_INITIALIZER): Update.
5497         * tree.c (recompute_tree_invarant_for_addr_expr): Call
5498         expr_to_decl langhook.
5499         * c-tree.h (c_expr_to_decl): Declare.
5500         * c-typeck.c (c_expr_to_decl): New.
5501         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
5502         specially.
5503         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
5504
5505 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
5506
5507         PR c/22308
5508         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
5509         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
5510
5511 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
5512
5513         * Makefile.in: Adjust dependencies.
5514         * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
5515         * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
5516         * alias.c (rest_of_handle_cfg, pass_cfg): New.
5517         * bb-reorder.c (duplicate_computed_gotos): Make it static.
5518         * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
5519         rest_of_compilation.
5520
5521         * bb-reorder.c (gate_duplicate_computed_gotos,
5522         pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
5523         rest_of_handle_reorder_blocks, pass_reorder_blocks,
5524         gate_handle_partition_blocks, rest_of_handle_partition_blocks,
5525         pass_partition_blocks): New.
5526         * bt-load.c (gate_handle_branch_target_load_optimize,
5527         rest_of_handle_branch_target_load_optimize,
5528         pass_branch_target_load_optimize): New.
5529         * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
5530         pass_jump2): New.
5531         * cfglayout.c (pass_insn_locators_initialize): New.
5532         * cfgrtl.c (pass_free_cfg): New.
5533         * combine.c (gate_handle_combine, rest_of_handle_combine,
5534         pass_combine): New.
5535         * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
5536         gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
5537         * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
5538         * except.c (pass_set_nothrow_function_flags,
5539         pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
5540         pass_rtl_eh): New.
5541         * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
5542         rest_of_handle_shorten_branches, pass_shorten_branches,
5543         rest_of_clean_state, pass_clean_state): New.
5544         * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
5545         rest_of_handle_remove_death_notes, pass_remove_death_notes,
5546         rest_of_handle_life, pass_life, rest_of_handle_flow2,
5547         pass_flow2): New.
5548         * function.c (pass_instantiate_virtual_regs, pass_init_function,
5549         rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
5550         * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5551         pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
5552         pass_gcse): New.
5553         * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
5554         * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
5555         pass_rtl_ifcvt, gate_handle_if_after_combine,
5556         rest_of_handle_if_after_combine, pass_if_after_combine,
5557         gate_handle_if_after_reload, rest_of_handle_if_after_reload,
5558         pass_if_after_reload): New.
5559         * integrate.c (pass_initial_value_sets): New.
5560         * jump.c (pass_cleanup_barriers, purge_line_number_notes,
5561         pass_purge_lineno_notes): New.
5562         * mode-switching.c (rest_of_handle_mode_switching,
5563         pass_mode_switching): New.
5564         * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
5565         * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
5566         pass_loop2): New.
5567         * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
5568         pass_loop_optimize): New.
5569         * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
5570         pass_sms): New.
5571         * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
5572         pass_gcse2): New.
5573         * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
5574         pass_postreload_cse): New.
5575         * profile.c (gate_handle_profiling, pass_profiling,
5576         rest_of_handle_branch_prob, pass_branch_prob): New.
5577         * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
5578         pass_split_before_regstack, gate_handle_split_before_regstack,
5579         gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
5580         rest_of_handle_split_all_insns, pass_split_all_insns): New.
5581         * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
5582         pass_stack_regs): New.
5583         * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
5584         gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
5585         pass_stack_adjustments): New.
5586         * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
5587         pass_regrename): New.
5588         * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
5589         pass_delay_slots, gate_handle_machine_reorg,
5590         rest_of_handle_machine_reorg, pass_machine_reorg): New.
5591         * rtl.h (extern void purge_line_number_notes): New.
5592         * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
5593         gate_handle_sched2, rest_of_handle_sched2, pass_sched,
5594         pass_sched2): New.
5595         * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
5596         pass_tracer): New.
5597         * value-prof.c (gate_handle_value_profile_transformations,
5598         rest_of_handle_value_profile_transformations,
5599         pass_value_profile_transformations): New.
5600         * var-tracking.c (gate_handle_var_tracking,
5601         pass_variable_tracking): New.
5602         * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
5603
5604         * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
5605         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5606         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5607         rest_of_handle_old_regalloc, rest_of_handle_regrename,
5608         rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
5609         rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
5610         rest_of_handle_gcse2, rest_of_handle_regmove,
5611         rest_of_handle_tracer, rest_of_handle_if_conversion,
5612         rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
5613         rest_of_handle_web, rest_of_handle_branch_prob,
5614         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5615         rest_of_handle_jump_bypass, rest_of_handle_combine,
5616         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5617         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5618         rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
5619         rest_of_handle_mode_switching, rest_of_handle_jump,
5620         rest_of_handle_eh, rest_of_handle_stack_adjustments,
5621         rest_of_handle_flow2, rest_of_handle_jump2,
5622         rest_of_handle_peephole2, rest_of_handle_postreload,
5623         rest_of_handle_shorten_branches, rest_of_clean_state,
5624         rest_of_compilation): Remove.
5625
5626         * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
5627         * passes.c (dump_flags, in_gimple_form, all_passes,
5628         all_ipa_passes, all_lowering_passes, register_one_dump_file,
5629         register_dump_files, next_pass_1, last_verified, execute_todo,
5630         execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
5631         from tree-optimize.c.
5632         (init_optimization_passes): Moved from tree-optimize.c,
5633         adding the RTL optimizations.
5634         * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
5635         * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
5636         all_ipa_passes, all_lowering_passes, register_one_dump_file,
5637         register_dump_files, next_pass_1, last_verified, execute_todo,
5638         execute_one_pass, execute_pass_list, execute_ipa_pass_list,
5639         init_tree_optimization_passes, ipa_passes): Delete.
5640         * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
5641         the RTL dumps.
5642         (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
5643         dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
5644         from tree.h.
5645         (ipa_passes): Remove.
5646         (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
5647         * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
5648         dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
5649         dump_switch_p, dump_flag_name): Moved to tree-pass.h.
5650         (dump_info_p, dump_flag): Moved to tree-dump.h.
5651
5652         * Makefile.in: Adjust dependencies for tree-pretty-print.c,
5653         cgraph.c, opts.c.
5654         * passes.c (finish_optimization_passes): Use dump_begin
5655         and dump_end, TDI_end.
5656         (gate_rest_of_compilation): New.
5657         (pass_rest_of_compilation): Use it.
5658         (gate_postreload, pass_postreload): New.
5659         * toplev.c (general_init): Rename init_tree_optimization_passes.
5660         * toplev.h (init_tree_optimization_passes): Rename to
5661         init_optimizations_passes.
5662         * tree-dump.c (dump_flag): Make static.
5663         (dump_files): Remove RTL dumps.
5664         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
5665         pass_cleanup_cfg, pass_free_cfg_annotations,
5666         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
5667         pass_init_datastructures, pass_fixup_cfg): Make non-static.
5668         * tree-pretty-print.c: Include tree-pass.h.
5669         * cgraph.c: Include tree-dump.h.
5670
5671 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
5672
5673         * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
5674         Only fall back to saying it points to readonly memory if
5675         we can't do better.
5676
5677 2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
5678
5679         * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
5680         * config/m32r/m32r.c (m32r_compute_frame_size,
5681         m32r_expand_prologue): Take current_function_profile into
5682         account whenever we reference
5683         current_function_uses_pic_offset_table.
5684         (m32r_finalize_pic): Remove.
5685         * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
5686
5687 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
5688
5689         * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
5690         instead of $<.  Don't remove ./as if it already exists.
5691
5692 2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5693
5694         PR target/21723
5695         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
5696         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
5697         for complex modes when generating code for PA 1.0.
5698         (VALID_FP_MODE_P): New macro.
5699         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
5700         sets for all general and floating point modes.  Align wide floating
5701         point modes to even register boundaries to comply with architectural
5702         requirements.
5703         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
5704         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
5705         (VALID_FP_MODE_P): New macro.
5706         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
5707         sets for all general and floating point modes.  Align wide floating
5708         point modes to even register boundaries to comply with architectural
5709         requirements.
5710
5711 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
5712
5713         * tree-dump.c (dump_files): Initialize dump number for .cgraph
5714         to 0.
5715
5716 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
5717
5718         * tree-ssa-structalias.c: Don't include expr.h.
5719
5720 2005-07-04  Diego Novillo  <dnovillo@redhat.com>
5721
5722         * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
5723         comments.
5724
5725 2005-07-04  Daniel Berlin  <dberlin@dberlin.org>
5726
5727         Fix PR tree-optimization/22279
5728
5729         * tree-ssa-structalias.c (offset_overlaps_with_access): Use
5730         correct operator.
5731
5732 2005-07-04  J"orn Rennecke <joern.rennecke@st.com>
5733
5734         * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
5735
5736 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
5737
5738         * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
5739         cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
5740         config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
5741         config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
5742         config/stormy16/stormy16.c, config/v850/v850.c,
5743         config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
5744         except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
5745         Avoid "." or "\n" at end of diagnostics and capital letters at
5746         start of diagnostics.
5747         * combine.c, cse.c: Don't translate dump file output.
5748         * toplev.c (print_version): Only translate output if going to
5749         stderr.
5750
5751 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
5752
5753         * c-decl.c, tree-object-size.c, tree-vectorizer.c,
5754         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
5755         typos.
5756
5757 2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5758
5759         * pa.c (fix_range): Fix typo in comment.
5760
5761 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
5762
5763         * tree-vrp.c (extract_range_from_assert): Replace
5764         fold (build (...)) with fold_build2.
5765
5766 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5767
5768         * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
5769         gcc_gfc_char_table, init_dynamic_gfc_info): New.
5770         (format_types_orig, handle_format_attribute): Add support for
5771         format "gcc_gfc".
5772
5773 2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5774
5775         * varasm.c (assemble_variable): Fix format specifier thinko.
5776
5777 2005-07-03  Ira Rosen  <irar@il.ibm.com>
5778
5779         PR tree-optimization/22029 (and 22135)
5780         * tree-pretty-print.c (dump_generic_node): Check that the node is not
5781         a phi node before calling dump_vops.
5782
5783 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5784
5785         * tree-dump.h (dump_string_field): Declare.
5786         * tree-dump.c: Use it instead of dump_string.
5787         (dump_string_field): Make non-static.
5788
5789 2005-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5790
5791         * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
5792         up the minimal CFG stuff always when optimize > 0.  Call
5793         split_all_insns_noflow in PIC case if needed.
5794
5795 2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5796             Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
5797
5798         PR c++/18279
5799         * c-decl.c (c_write_global_declarations): Dump contents of
5800         external scope to.
5801         * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
5802         <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
5803         <GOTO_EXPR>, <SWITCH_EXPR>: Add.
5804         (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
5805         is enabled.
5806
5807 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
5808
5809         * c-common.h (GCC_DIAG_STYLE): Define.
5810         * c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
5811         version for format checking to 4.1.
5812         * c-format.c: Include toplev.h after c-common.h.
5813         (enum format_type): Add gcc_tdiag_format_type.
5814         (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
5815         gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
5816         (format_types_orig): Add gcc_tdiag.
5817         (init_dynamic_diag_info): Support gcc_tdiag formats.
5818         (handle_format_attribute): Likewise.
5819         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
5820         (GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
5821         version for format checking to 4.1.
5822         (warning0, warning, error, pedwarn, sorry): Use
5823         ATTRIBUTE_GCC_DIAG.
5824         * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
5825         (finish_aliases_1): Do not use %qE.
5826         * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
5827         config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
5828         Correct format bugs.
5829         * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
5830         parameter to unsigned HOST_WIDE_INT.
5831         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
5832
5833 2005-07-02  David Edelsohn  <edelsohn@gnu.org>
5834
5835         PR middle-end/21742
5836         * expr.c (write_complex_part): Use adjust_address for MEM.
5837         (read_complex_part): Same.
5838
5839 2005-07-02  Daniel Berlin  <dberlin@dberlin.org>
5840
5841         Fix PR tree-optimization/22280
5842
5843         * tree-sra.c (generate_element_init): Remove useless loop.
5844
5845 2005-07-02  Richard Henderson  <rth@redhat.com>
5846
5847         * config/alpha/alpha.c (alpha_legitimize_address): Check for
5848         TLS_MODEL_NONE.
5849         (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
5850
5851 2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>
5852
5853         PR middle-end/14490
5854         * fold-const.c (fold_binary): Handle the return value of
5855         fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
5856         Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
5857
5858 2005-07-02  Jeff Law  <law@redhat.com>
5859
5860         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
5861         a eliminate type conversion which feeds an equality comparison
5862         if the original type or either operand in the comparison is a
5863         function pointer.
5864
5865 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
5866
5867         * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
5868         config/rs6000/rs6000.opt, params.def: Remove "." from end of help
5869         texts.
5870         * config/avr/avr.c: Do not use '`' as left quote.
5871         * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
5872         Remove "." from end of diagnostics.  Make diagnostics start with
5873         lowercase letter.
5874
5875 2005-07-02  Zack Weinberg  <zack@codesourcery.com>
5876             Joseph S. Myers  <joseph@codesourcery.com>
5877
5878         * toplev.c (default_tree_printer): Handle setting location with
5879         '+' flag.
5880         * c-objc.common.c (c_tree_printer): Likewise.
5881         * c-format.c (gcc_diag_flag_specs): Add '+'.
5882         (gcc_cdiag_char_table): Allow '+' flag for tree formats.
5883         (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
5884         formats.
5885         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
5886         config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
5887         config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
5888         config/v850/v850.c, function.c, stor-layout.c, toplev.c,
5889         tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
5890         instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
5891         of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
5892         format arguments where %J is used without %D.
5893
5894 2005-07-02  Jakub Jelinek  <jakub@redhat.com>
5895
5896         * gcc.c (LINK_SSP_SPEC): Define.
5897         (link_ssp_spec): New variable.
5898         (LINK_COMMAND_SPEC): Add %(link_ssp).
5899         (static_specs): Add link_ssp_spec.
5900         * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
5901         * configure: Rebuilt.
5902         * config.in: Rebuilt.
5903
5904         * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
5905         * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
5906         * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
5907         * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
5908         * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
5909         If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
5910         -0x7008(2) instead of reading __stack_chk_guard variable.
5911         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
5912         number.
5913         (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
5914         (stack_protect_set, stack_protect_test): Use *_tls* patterns
5915         if TARGET_THREAD_SSP_OFFSET is defined.
5916         (stack_tls_protect_set_si, stack_tls_protect_set_di,
5917         stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
5918
5919         Revert:
5920         2005-06-27  Richard Henderson  <rth@redhat.com>
5921         * libgcc-std.ver (GCC_4.1.0): New.
5922         * libgcc.h (__stack_chk_guard): Declare.
5923         (__stack_chk_fail, __stack_chk_fail_local): Declare.
5924         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
5925         * mklibgcc.in (lib2funcs): Add them.
5926
5927 2005-07-01  Richard Henderson  <rth@redhat.com>
5928
5929         * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
5930         void * before struct sigcontext *.
5931         (x86_fallback_frame_state): Likewise.
5932
5933 2005-07-01  James E. Wilson  <wilson@specifixinc.com>
5934
5935         * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
5936
5937 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
5938
5939         PR tree-opt/22269
5940         * tree-ssa-reassoc.c (should_transpose): Fix which operand
5941         we check for SSA_NAME for.
5942
5943 2005-07-01  Daniel Berlin  <dberlin@dberlin.org>
5944
5945         Fix PR tree-optimization/22071
5946
5947         * tree-ssa-structalias.c (offset_overlaps_with_access): New
5948         function.
5949         (get_constraint_for_component_ref): Use it.
5950
5951 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
5952
5953         PR other/22264
5954         * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
5955         print out the last new line.
5956
5957 2005-07-01  Hans-Peter Nilsson  <hp@axis.se>
5958
5959         * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
5960         Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
5961         * config/cris/cris.c (cris_conditional_register_usage): Adjust
5962         reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
5963         (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
5964         (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
5965         * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
5966         (enum reg_class): New member CC0_REGS.
5967         (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
5968         (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
5969         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
5970         (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
5971         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
5972         Adjust for register now described.
5973
5974 2005-07-01  Jakub Jelinek  <jakub@redhat.com>
5975
5976         PR target/22262
5977         * config/i386/i386.md (stack_protect_test_si,
5978         stack_protect_test_di): Add earlyclobber for scratch 3.
5979         * config/rs6000/rs6000.md (stack_protect_testsi,
5980         stack_protect_testdi): Add earlyclobber for scratch 3,
5981         remove earlyclobber from scratch 4.
5982
5983 Older entries for 2005 can be found in ChangeLog-2005.