OSDN Git Service

8e40f04eba7c481e1cbfa101ccb9f5fffa7b16cc
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog-2005
1 2005-06-30  Diego Novillo  <dnovillo@redhat.com>
2
3         PR 21584
4         PR 22219
5         * tree-ssa-alias.c (create_name_tags): Also process
6         non-dereferenced pointers.
7         Remove argument 'ai'.  Update all callers.
8
9 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
10
11         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
12         Set to 0 for FRAME_GROWS_DOWNWARD.
13         (REGISTER_NAMES): Add sfp.
14
15 2005-07-01  Kelley Cook  <kcook@gcc.gnu.org>
16
17         * config/arm/libunwind.S, config/arm/pr-support.c,
18         config/arm/unwind-arm.c, config/arm/unwind-arm.h,
19         config/c4x/predicates.md, tree-object-size.c: Update FSF address.
20
21 2005-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
22
23         PR target/22260
24         * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
25         Preserve the 2nd register too, if present.
26         (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
27         Adjust call to emit_and_preserve.
28
29 2005-06-30  Zack Weinberg  <zack@codesourcery.com>
30             Jakub Jelinek  <jakub@redhat.com>
31
32         * pretty-print.h (PP_NL_ARGMAX): New.
33         (text_info): Add locus.
34         (struct chunk_info): New.
35         (output_buffer): Add formatted_obstack, chunk_obstack, and
36         cur_chunk_array. Change obstack to a pointer.
37         (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
38         (struct pretty_print_info): Replace ideal_maximum_length and
39         prefixing_rule with wrapping.
40         (pp_line_cutoff, pp_prefixing_rule): Update to match.
41         Update prototypes and wrapper macros throughout.
42         * pretty-print.c (pp_formatted_text_data, pp_append_r)
43         (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
44         (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
45         Update for changes to pp structure.
46         (pp_base_prepare_to_format, pp_base_format_text): Delete.
47         (pp_base_format, pp_base_output_formatted_text): New functions.
48         (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
49         (pp_verbatim): Clear text.locus.
50         (pp_printf): Likewise.  Use pp_format and pp_output_formatted_text.
51         * c-objc-common.c (c_tree_printer): Update function signature.
52         * diagnostic.c (diagnostic_initialize): Update for changes to
53         pp structure.
54         (diagnostic_report_diagnostic): Call pp_format and then
55         pp_output_formatted_text.
56         (verbatim): Clear text.locus.
57         * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
58         Update for changes to pp structure.
59
60         * c-lang.c: No need to include c-pretty-print.h.
61         * Makefile.in: Remove bogus line containing only a tab.
62         (c-lang.o): Update dependencies.
63         * toplev.c (announce_function): Don't use verbatim.
64         (default_tree_printer): Update signature.
65
66         * objc/objc-lang.c: No need to include c-pretty-print.h.
67         * objc/Make-lang.in: Update dependencies.
68
69 2005-06-29  Daniel Berlin  <dberlin@dberlin.org>
70
71         * tree-complex.c (complex_variable_components): Now a hashtable.
72         (cvc_lookup): Ditto.
73         (cvc_insert): Ditto.
74         (create_components): Use referenced var iterator.
75         Initialize hashtable.   Use cvc_insert/lookup.
76         (extract_components): Use cvc_insert/lookup.
77         (update_complex_components): Ditto.
78         (update_complex_components_on_edge): Ditto.
79         * tree-dfa.c (referenced_vars): Now a hashtable.
80         (dump_referenced_vars): Use iterator.
81         (referenced_var_lookup): New function.
82         (referenced_var_insert): Ditto.
83         (add_referenced_var): Use referenced_var_insert.
84         (mark_new_vars_to_rename): Use DECL_UID.
85         * tree-flow-inline.h (first_htab_element): New function.
86         (end_htab_p): Ditto.
87         (next_htab_element): Ditto.
88         (first_referenced_var): Ditto.
89         (end_referenced_vars_p): Ditto.
90         (next_referenced_var): Ditto.
91         (is_call_clobbered): Use DECL_UID.
92         (mark_call_clobbered): Ditto.
93         (clear_call_clobbered): Ditto.
94         (mark_non_addressable): Ditto.
95         * tree-flow.h (htab_iterator): New struct.
96         (FOR_EACH_HTAB_ELEMENT): New macro.
97         (struct int_tree_map): New struct.
98         (int_tree_map_hash): Prototype.
99         (int_tree_map_eq): Ditto.
100         (referenced_var_iterator): Ditto.
101         (FOR_EACH_REFERENCED_VAR): New macro.
102         (referenced_vars): Now a hashtable.
103         * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
104         (add_new_name_mapping): Ditto.
105         (mark_def_sites): Ditto.
106         (insert_phi_nodes): Use referenced_var iterator.
107         (mark_def_site_blocks): Ditto.
108         (mark_sym_for_renaming): Use DECL_UID.
109         * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
110         (lookup_element): Ditto.
111         (find_candidates_for_sra): Use referenced_vars iterator.
112         Use DECL_UID.
113         * tree-ssa-alias.c (NUM_REFERENCES): New macro.
114         (NUM_REFERENCES_CLEAR): Ditto.
115         (NUM_REFERENCES_INC): Ditto.
116         (NUM_REFERENCES_SET): Ditto.
117         (alias_obstack): New bitmap obstack.
118         (struct alias_map_d): Use bitmap, not sbitmap.
119         (struct alias_info): Remove num_references.
120         (init_alias_info): Use referenced_var iterator.
121         Initialize bitmap obstack.
122         (delete_alias_info): Use referenced_var iterator.
123         Free bitmap obstack.
124         (compute_points_to_and_addr_escape): Use DECL_UID.
125         Use new NUM_REFERENCES macros.
126         (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
127         Use new NUM_REFERENCES macros.
128         (group_aliases_into): Update prototype to use bitmap.
129         (setup_pointers_and_addressables): Use referenced_vars iterator.
130         Use DECL_UID. Use new NUM_REFERENCES macros.
131         (add_pointed_to_var): Use DECL_UID.
132         (dump_alias_info): Use referenced_var iterator.
133         (add_type_alias): Ditto.
134         (used_portions): Now a hashtable.
135         (used_part_map_eq): New function.
136         (used_part_map_hash): Ditto.
137         (free_used_part_map): Ditto.
138         (up_lookup): Ditto.
139         (up_insert): Ditto.
140         (get_or_create_used_part_for): Use up_lookup.
141         (create_overlap_variables_for): Ditto.
142         (find_used_portions): Use up_insert.
143         Use DECL_UID.
144         (create_structure_vars): Init used_portions hashtable, use
145         referenced_vars iterator.
146         * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
147         Use DECL_UID.
148         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
149         * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
150         (note_addressable): Ditto.
151         * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
152         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
153         referenced_var iterator.
154         Use DECL_UID.
155         (delete_tree_ssa): Ditto.
156         (int_tree_map_eq): New function.
157         (int_tree_map_hash): Ditto.
158         * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
159         (va_list_ptr_read): Ditto.
160         (va_list_counter_struct_op): Ditto.
161         (va_list_ptr_write): Ditto.
162         (check_va_list_escapes): Ditto.
163         (check_all_va_list_escapes): Ditto.
164         (execute_optimize_stdarg): Ditto.
165         * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
166         iterator. 
167
168 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
169
170         * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
171         (HARD_FRAME_POINTER_REGNUM): this.
172
173 2005-06-30  Jan Hubicka  <jh@suse.cz>
174
175         * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
176
177 2005-06-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
178
179         PR middle-end/22247
180         * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
181         process_unification_queue, init_topo_info, topo_visit,
182         init_scc_info, free_scc_info, perform_var_substitution,
183         solve_graph): Use unsigned instead of uint.
184         
185 2005-06-30  Jakub Jelinek  <jakub@redhat.com>
186
187         * function.c (gen_stack_protect_test): Add third argument.
188
189 2005-06-30  J. D. Johnston  <jjohnst@us.ibm.com>
190
191         * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
192
193 2005-06-30  Kazu Hirata  <kazu@codesourcery.com>
194
195         * config/c4x/c4x-protos.h: Remove the prototypes for those
196         functions removed from c4x.c.  Add prototypes for those
197         functions exported in c4x.c.
198         * config/c4x/c4x.c (any_operand, fp_zero_operand,
199         const_operand, stik_const_operand, not_const_operand,
200         reg_operand, r0r1_reg_operand, r2r3_reg_operand,
201         ext_low_reg_operand, ext_reg_operand, std_reg_operand,
202         std_or_reg_operand, addr_reg_operand, index_reg_operand,
203         dp_reg_operand, sp_reg_operand, st_reg_operand,
204         rc_reg_operand, call_address_operand,
205         symbolic_address_operand, dst_operand, src_operand,
206         src_hi_operand, lsrc_operand, tsrc_operand,
207         nonimmediate_src_operand, nonimmediate_lsrc_operand,
208         reg_or_const_operand, par_ind_operand, parallel_operand):
209         Remove.
210         (c4x_immed_float_p, c4x_a_register, c4x_x_register,
211         c4x_K_constant, c4x_N_constant, c4x_O_constant,
212         c4x_S_indirect): Export.
213         * config/c4x/c4x.h (PREDICATE_CODES): Remove.
214         * config/c4x/c4x.md: Include predicates.md.
215         * config/c4x/predicates.md: New.
216
217 2005-06-30  Jakub Jelinek  <jakub@redhat.com>
218
219         * function.c (stack_protect_epilogue): Pass label to
220         stack_protect_test, assume it emitted also the conditional
221         branch.
222         * doc/md.texi (stack_protect_test): Adjust documentation.
223         * config/i386/i386.md (stack_protect_test): Add third argument,
224         emit beq with operands[2].
225         * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
226         flag_stack_protect != 0.
227         * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
228         constants.
229         (stack_protect_set, stack_protect_test): New expanders.
230         (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
231         stack_protect_testdi): New insns.
232         * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
233         (TARGET_STACK_PROTECT_FAIL): Define.
234         (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
235
236         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
237         (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
238         that addition of sfp doesn't change these.
239         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
240         REG_ALLOC_ORDER): Add sfp.
241         (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
242         (FRAME_POINTER_REGNUM): Define to 113.
243         (HARD_FRAME_POINTER_REGNUM): Define to 31.
244         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
245         (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
246         (ELIMINABLE_REGS): Never eliminate to
247         FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
248         instead.  Add eliminations from FRAME_POINTER_REGNUM.
249         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
250         Include FRAME_POINTER_REGNUM.
251         (REGISTER_NAMES): Add sfp.
252         * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
253         (alt_reg_names): Likewise.
254         (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
255         (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
256         instead of FRAME_POINTER_REGNUM.
257         (rs6000_initial_elimination_offset): Never eliminate to
258         FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
259         instead.  Add elimination offsets from FRAME_POINTER_REGNUM.
260
261         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
262         if DEFAULT_ABI == ABI_V4.
263
264 2005-06-30  Steven Bosscher  <stevenb@suse.de>
265
266         * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
267         * tree.h (struct tree_decl): New field `tls_model'.
268         (DECL_TLS_MODEL): New.
269         (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
270         a predicate.
271         * rtl.h (decl_default_tls_model): Add prototype for it.
272         * varasm.c (decl_tls_model): Rewritten and renamed to ...
273         (decl_default_tls_model): ... this.
274         (default_encode_section_info): Use DECL_TLS_MODEL instead of
275         decl_tls_model.
276         (assemble_variable): Replace DECL_THREAD_LOCAL with
277         DECL_THREAD_LOCAL_P.
278         (default_section_type_flags_1): Likewise.
279         (categorize_decl_for_section): Likewise.
280         * tree.c (staticp): Likewise.
281         (recompute_tree_invarant_for_addr_expr): Likewise.
282         * drawf2out (loc_descriptor_from_tree_1): Likewise.
283         * c-decl.c (diagnose_mismatched_decls): Likewise.
284         with DECL_THREAD_LOCAL_P.
285         (start_decl): Likewise.
286         * print-tree.c (print_node): Likewise.  Print the TLS model.
287         (grokdeclarator): Set the default DECL_TLS_MODEL here.
288         * c-common.c (handle_tls_model_attribute): Rewrite to set the
289         TLS model up based on the attribute.  Never add the attribute
290         to the decl's attributes list.
291         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
292         DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
293
294 2005-06-30  Zdenek Dvorak  <dvorakz@suse.cz>
295
296         PR testsuite/21967
297         * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
298         TMR_ORIGINAL.
299
300 2005-06-30  Bernd Schmidt  <bernd.schmidt@analog.com>
301
302         * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
303         mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
304         necessary digit.
305
306 2005-06-29  David Edelsohn  <edelsohn@gnu.org>
307
308         * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
309
310 2005-06-29  Diego Novillo  <dnovillo@redhat.com>
311
312         PR 22234
313         * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
314         when following copy-of chains.
315
316 2005-06-30  Jan Hubicka  <jh@suse.cz>
317
318         * function.h (struct function): Add saved blocks/unexpanded var list.
319         * gimple-low.c (record_vars): Insert only VAR_DECLs.
320         * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
321         (remap_decl): Do not declare vars.
322         (remap_block): Do not care inserting blocks.
323         (remap_blocks): New function.
324         (copy_body_r): Update debug info.
325         (expand_call_inline): Duplicate callee block tree into caller;
326         copy all the unexpanded_var_list.
327         (save_body): Save unexpanded_var_list and blocks.
328         * tree-optimize.c (tree_rest_of_optimization): Restore
329         blocks/unexpanded_var_list.
330
331 2005-06-29  Richard Henderson  <rth@redhat.com>
332
333         * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
334         plus for V4HImode UMAX.
335
336 2005-06-29  Joseph S. Myers  <joseph@codesourcery.com>
337
338         * c-tree.h (default_function_array_conversion): Take and return
339         struct c_expr.
340         * c-typeck.c (default_function_array_conversion): Split into
341         array_to_pointer_conversion and function_to_pointer_conversion.
342         Take and return struct c_expr.
343         (array_to_pointer_conversion): Do not handle type qualifiers or
344         COMPOUND_EXPRs specially.
345         (build_function_call): Call function_to_pointer_conversion for
346         function designators.
347         (build_unary_op): Call array_to_pointer_conversion, not
348         default_function_array_conversion.
349         (digest_init, output_init_element): Likewise.
350         * c-parser.c: All callers of default_function_array_conversion
351         changed.
352
353 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
354
355         * config/darwin.c (machopic_select_section): constant ObjC string
356         objects now always have type "__builtin_ObjCString".
357
358 2005-06-29  Richard Henderson  <rth@redhat.com>
359
360         * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
361
362 2005-06-29  Richard Henderson  <rth@redhat.com>
363
364         * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
365         (vect_create_epilog_for_reduction): Don't use vec_shr if the
366         operation is emulated.
367         (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
368         tests from vectorizable_operation.
369
370 2005-06-29  Caroline Tice  <ctice@apple.com>
371
372         Fix PR 21956
373         * varasm.c (assemble_start_function):  Add "L" to beginning of
374         local labels, so assembler & linker treat them as local.
375         
376 2005-06-29  Richard Henderson  <rth@redhat.com>
377
378         * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
379         argument.  Simplify canonicalization of condition.  Use unsigned
380         saturating subtraction for QI and HImode unsigned compares.  Use
381         bit arithmetic tricks for SImode unsigned compares.
382         * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
383         * config/i386/sse.md (SSEMODE14): New.
384         (umaxv8hi3): Use us_minus+plus to avoid vcond.
385         (umaxv4si3): New.
386         (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
387         (smin<SSEMODE14>3): Similarly with sminv16qi3.
388         (umin<SSEMODE24>3): Similarly with uminv8hi3.
389
390 2005-06-29  Ian Lance Taylor  <ian@airs.com>
391
392         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
393         GEN_INT to gen_int_for_mode when storing register size to memory.
394
395 2005-06-29  Stuart Hastings  <stuart@apple.com>
396
397         * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
398         * gcc/config/i386/emmintrin.h: Likewise.
399         * gcc/config/i386/pmmintrin.h: Likewise.
400         * gcc/config/i386/xmmintrin.h: Likewise.
401                                         
402 2005-06-29  Steve Ellcey  <sje@cup.hp.com>
403
404         PR middle-end/21969
405         * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
406         (SET_TYPE_VECTOR_SUBPARTS): New.
407         * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
408         SET_TYPE_VECTOR_SUBPARTS.
409         * tree-vect-transform.c (vect_transform_loop): Add cast.
410
411 2005-06-29  Andreas Krebbel  <krebbel1@de.ibm.com>
412
413         * config/s390/s390.c (s390_decompose_address): Accept invalid
414         displacements for addresses containing frame_pointer_rtx or
415         virtual_stack_vars_rtx.
416         (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
417         (s390_initial_elimination_offset): New offset when eliminating the 
418         soft frame pointer.
419         * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
420         (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
421
422 2005-06-28  Ziemowit Laski  <zlaski@apple.com>
423
424         * c-common.c (flag_next_runtime): Move...
425         * toplev.c (flag_next_runtime): ... here.
426         * c-common.h (flag_next_runtime): Move...
427         * flags.h (flag_next_runtime): ... here.
428         * config/darwin-c.c: Include flags.h.
429         * config/t-darwin (darwin-c.o): Depend on flags.h.
430
431 2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
432
433         * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
434         Disable aliasing warning with void * cast.
435         (sh_fallback_frame_state): Likewise.
436
437 2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
438
439         * target.h (gcc_target): New field allocate_initial_value.
440         * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
441         (TARGET_INITIALIZER): Include it.
442         * integrate.c (allocate_initial_values): Use
443         targetm.allocate_initial_value.
444         * system.h: Poison ALLOCATE_INITIAL_VALUE.
445         * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
446         * config/sh/sh.c (sh_pr_n_sets): Make it static.
447         (sh_allocate_initila_value): New function.
448         (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
449         * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
450         * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
451         update from ALLOCATE_INITIAL_VALUE.
452
453 2005-06-28  Richard Henderson  <rth@redhat.com>
454
455         * tree-vectorizer.c (vect_is_simple_reduction): Compare types
456         using TYPE_MAIN_VARIANT.
457
458 2005-06-28  Richard Henderson  <rth@redhat.com>
459
460         * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
461         when using psubN.uuu.
462
463 2005-06-29  Kelley Cook <kcook@gcc.gnu.org>
464
465         * doc/gcc.texi: Update FSF address.
466
467 2005-06-28  Eric Christopher  <echristo@redhat.com>
468
469         PR c/22052
470         PR c/21975
471         * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
472         Use. Fix detection of invalid extern inline redefinition.
473
474 2005-06-28  Diego Novillo  <dnovillo@redhat.com>
475
476         * tree-optimize.c (init_tree_optimization_passes): Fix typo.
477
478 2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
479
480         * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
481
482 2005-06-28  Richard Henderson  <rth@redhat.com>
483
484         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
485         saturating subtraction for QI and HImode unsigned compares.  Use
486         bit arithmetic tricks for SImode unsigned compares.
487         (ia64_expand_vcondu_v2si): Remove.
488         (ia64_expand_vecint_cmov): Don't call it.
489
490 2005-06-28  Richard Henderson  <rth@redhat.com>
491
492         * rtlanal.c (nonzero_bits1): Use the mode of the value for
493         determining integral-ness for comparisons.
494
495 2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
496
497         * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
498
499 2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
500
501         * target.h (invalid_conversion, invalid_unary_op,
502         invalid_binary_op): New hooks.
503         * target-def.h (TARGET_INVALID_CONVERSION,
504         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
505         TARGET_INITIALIZER): Likewise.
506         * hooks.h (hook_constcharptr_tree_tree_null,
507         hook_constcharptr_int_tree_null,
508         hook_constcharptr_int_tree_tree_null): New.
509         * hooks.c (hook_constcharptr_tree_tree_null,
510         hook_constcharptr_int_tree_null,
511         hook_constcharptr_int_tree_tree_null): Likewise.
512         * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
513         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
514         * c-convert.c (convert): Use invalid_conversion hook.
515         * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
516         (build_binary_op): Use invalid_binary_op hook.
517         * config/ia64/ia64-modes.def: Define RFmode.
518         * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
519         (ia64_expand_movxf_movrf): New.
520         * config/ia64/ia64.md (movxf): Move code to
521         ia64_expand_movxf_movrf.
522         (movrf, movrf_internal): New.
523         * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
524         ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
525         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
526         (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
527         Add mode parameter.  Make static.
528         (ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
529         as well as XFmode.
530         (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
531         ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
532         (ia64_init_builtins): Set up __fpreg as RFmode.
533         (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
534
535 2005-06-28  Adrian Straetling  <straetling@de.ibm.com>
536
537         * builtins.c: (expand_builtin_memset): Rewrite to support
538         'set_storage_via_setmem'.
539         * expr.c: (enum insn_code setmem_optab): Define.
540         (enum insn_code clrmem_optab): Remove.
541         (set_storage_via_setmem): New function.
542         (clear_storage_via_setmem): Remove.
543         (clear_storage): Replace call to "clear_storage_via_clrmem" with
544         "set_storage_via_setmem".
545         * expr.h: (set_storage_via_setmem): Declare.
546         (CLEAR_RATIO): Redefine using HAVE_setmemM.
547         * optabs.h: (enum insn_code setmem_optab): Declare.
548         (enum insn_code clrmem_optab): Remove.
549         * optabs.c: (init_optabs): Initialize setmem_optab.
550         (enum insn_code clrmem_optab): Remove.
551         * genopinit.c: (otabs): Likewise.
552         * doc/md.texi: Document new standard pattern 'setmem'. Remove
553           'clrmem'.
554         * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
555         'operands' ordering.
556         * config/frv/frv.c: (frv_expand_block_clear): Likewise.
557         * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
558         * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
559         FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
560         * config/avr/avr.md: ("clrmemhi"): Likewise.
561         * config/frv/frv.md: ("clrmemsi"): Likewise.
562         * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
563         * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
564         * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
565         * config/s390/s390.md: ("clrmem<mode>"): Likewise.
566
567 2005-06-28  Paul Brook  <paul@codesourcery.com>
568
569         * Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
570         * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
571         * except.c (add_ehspec_entry): Generate arm eabi filter lists.
572         (assign_filter_values): Ditto.
573         (output_ttype): New function.
574         (output_function_exception_table): Use output_ttype.  Generate arm
575         eabi filter lists.
576         (default_init_unwind_resume_libfunc): New function.
577         * except.h (default_init_unwind_resume_libfunc): Add prototype.
578         * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
579         * opts.c (decode_options): Use targetm.unwind_tables_default.
580         * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
581         (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
582         * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
583         and arm_eabi_unwinder.
584         * unwind-c.c: Support Arm EABI unwinder.
585         * unwind.h: Rename ...
586         * unwind-generic.h: ... To this.
587         * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
588         (TARGET_UNWID_TABLES_DEFAULT): Document.
589
590         * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
591         * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
592         (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
593         Define.
594         (thumb_pushpop, thumb_output_function_prologue): Output unwinding
595         directives.
596         (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
597         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
598         !TARGET_UNWIND_INFO.
599         (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
600         * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
601         * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
602         ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
603         * config/arm/lib1funcs.asm: Include libunwind.S.
604         * config/arm/libgcc-bpabi.ver: Add unwinding routines.
605         * config/arm/libunwind.S: New file.
606         * config/arm/pr-support.c: New file.
607         * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
608         (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
609         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
610         * config/arm/unwind-arm.c: New file.
611         * config/arm/unwind-arm.h: New file.
612         * config/i386/t-netware (USER_H): Remove unwind.h.
613         * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
614
615 2005-06-28  DJ Delorie  <dj@redhat.com>
616
617         * c-decl.c (pop_scope): Move warning control into warning call.
618         (diagnose_mismatched_decls): Likewise.
619         (pushdecl): Likewise.
620         (start_decl): Likewise.
621         (grokparms): Likewise.
622         (start_function): Likewise.
623         (store_parm_decls_newstyle): Likewise.
624         (store_parm_decls_oldstyle): Likewise.
625         (finish_function): Likewise.
626         (declspecs_add_scspec): Likewise.
627         * c-format.c (decode_format_attr): Likewise.
628         (maybe_read_dollar_number): Likewise.
629         (avoid_dollar_number): Likewise.
630         (finish_dollar_format_checking): Likewise.
631         (check_format_info): Likewise.
632         (check_format_info_main): Likewise.
633         (check_format_types): Likewise.
634         (format_type_warning): Likewise.
635         * c-typeck.c (function_types_compatible_p): Likewise.
636         (build_array_ref): Likewise.
637         (convert_arguments): Likewise.
638         (build_c_cast): Likewise.
639         (store_init_value): Likewise.
640         (process_init_element): Likewise.
641         (c_start_case): Likewise.
642         * stor-layout.c (finalize_record_size): Likewise.
643         * tree-cfg.c (execute_warn_function_noreturn): Likewise.
644         * tree-inline.c (expand_call_inline): Likewise.
645
646 2005-06-28  Uros Bizjak  <uros@kss-loka.si>
647
648         PR target/22134
649         * config/i386/i386.md (fist<mode>2_with_temp splitter):
650         Clobber memory operand, not scratch register.
651
652 2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
653
654         * config/s390/s390.c (machine_function): New field has_landing_pad_p.
655         (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
656          s390_regs_ever_clobbered): New functions.
657         (s390_return_addr_rtx): Use get_hard_reg_initial_value.
658         (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
659         Use s390_regs_ever_clobbered.
660         (s390_emit_prologue): Don't use r14 as temp reg if its content is used
661         for builtin_return_address.
662         * config/s390/s390.md ("exception_receiver"): New expander.
663         * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
664         added.
665
666 2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
667
668         * except.c (current_function_has_exception_handlers): Function 
669         description added and if statements merged.
670
671 2005-06-28  Richard Henderson  <rth@redhat.com>
672
673         * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
674         (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
675
676 2005-06-27  Richard Henderson  <rth@redhat.com>
677
678         * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
679         comparison operations.
680         (ia64_expand_vecint_minmax): Fix size of xops.
681         * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
682         (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
683
684 2005-06-27  Richard Henderson  <rth@redhat.com>
685
686         * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
687         type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.
688
689 2005-06-27  Richard Henderson  <rth@redhat.com>
690
691         * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
692         (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
693
694 2005-06-27  Richard Henderson  <rth@redhat.com>
695
696         * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
697         duplicate little-endian adjustment.
698
699 2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
700
701         * doc/include/texinfo.tex: Import from upstream CVS.
702
703 2005-06-28  Jan Hubicka  <jh@suse.cz>
704
705         * cgraph.c (cgraph_remove_node): Do not release function bodies until
706         full cgraph is built.
707         * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
708         * cgraphunit.c (cgraph_finalize_function): Update call of
709         cgraph_decide_inlining_incrementally.
710         (initialize_inline_failed): Break out of ...
711         (cgraph_analyze_function): ... here.
712         (rebuild_cgraph_edges): New function.
713         (pass_rebuild_cgraph_edges): New pass.
714         * common.opt (fearly-inlining): New flag.
715         * ipa-inline.c: Include ggc.h
716         (cgraph_clone_inlined_nodes): Avoid re-using of original copy
717         when cgraph is not fully built.
718         (cgraph_decide_inlining_incrementally): Add early mode.
719         (cgraph_early_inlining): New function.
720         (cgraph_gate_early_inlining): Likewise.
721         (pass_early_ipa_inline): New pass.
722         * ipa.c (cgraph_postorder): NULLify aux pointer.
723         * tree-inline.c (expand_call_inline): Avoid warning early.
724         * tree-optimize.c (pass_early_local_passes): New.
725         (execute_cleanup_cfg_pre_ipa): New.
726         (pass_cleanup_cfg): New.
727         (register_dump_files): Fix handling subpasses of IPA pass.
728         (init_tree_optimization_passes): Add early passes.
729         (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
730         * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
731         pass_early_ipa_inline): New passes.
732         * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
733
734         * invoke.texi: Document early-inlining.
735
736 2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
737
738         * doc/include/fdl.texi: Merge in changes from upstream.
739         * doc/include/gpl.texi: Likewise.
740
741 2005-06-27  Diego Novillo  <dnovillo@redhat.com>
742
743         PR 21959
744         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
745         casts between unsigned and signed types with different size
746         or precision.
747
748 2005-06-28  Jan Hubicka  <jh@suse.cz>
749
750         * tree-optimize.c (exercute_free_datastructures):
751         Do not disband implicit edges; do not attempt to build insn list;
752         do not free cfg annotations.
753         (execute_free_cfg_annotations); Disband implicit edges here;
754         free cfg annotations here too.
755         (pass_free_cfg_annotations); New pass.
756         (init_tree_optimization_passes); Add pass_free_cfg_annotations.
757         * tree-ssa-operands.c (free_ssa_operands); Recover; export.
758         * tree-ssa-operands.h (free_ssa_operands); declare.
759         * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
760         kill PHI nodes.
761         * tree-ssanames.c (release_defs): Kill addresses_taken.
762
763         * basic-block.h (basic_block_def): Kill rbi.
764         (reorder_block_def): Kill; Remove next field (replaced by aux);
765         move other fields to ...
766         (rtl_bb_info): ... here.
767         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
768         copy_bb, connect_traces, add_labels_and_missing_jumps
769         fix_up_fall_thru_edges, fix_crossing_conditional_branches,
770         duplicate_computed_gotos, partition_hot_cold_basic-blocks):
771         Update to new fields.
772         * cfg.c (initialize_bb_rbi): Kill.
773         * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
774         fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
775         * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
776         (try_redirect_by_replacing_jump): Update rbi references.
777         (cfg_layout_split_block): Likewise.
778         (cfg_layout_delete_block): Likewise.
779         (cfg_layout_merge_blocks): Likewise.
780         * function.c (thread_prologue_and_epilogue_insns): Likewise.
781         * passes.c (rest_of_handle_sms): Likewise.
782         * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
783
784 2005-06-27  David Edelsohn  <edelsohn@gnu.org>
785
786         * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
787         in verbose_asm output.
788         * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
789         CONFIG_PPC405CR.
790         * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
791         405cr.
792
793 2005-06-27  Jakub Jelinek  <jakub@redhat.com>
794
795         * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
796         (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
797         (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
798         (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
799         ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
800         * builtins.c: Include tree-flow.h.
801         (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
802         (expand_builtin_object_size, expand_builtin_memory_chk,
803         maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
804         compute_object_offset, compute_builtin_object_size,
805         fold_builtin_object_size): New functions.
806         (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
807         (fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
808         and BUILT_IN_{,F}PRINTF_UNLOCKED.
809         (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
810         fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
811         fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
812         fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
813         New functions.
814         * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
815         BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
816         BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
817         BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
818         BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
819         BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
820         BUILT_IN_VPRINTF_CHK): New builtins.
821         * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
822         Document.
823         (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
824         BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
825         BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
826         BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
827         BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
828         BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
829         BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
830         BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
831         BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
832         * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
833         DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
834         * Makefile.in (OBJS-common): Add tree-object-size.o.
835         (tree-object-size.o): Add dependencies.
836         * tree-pass.h (pass_object_sizes): Add.
837         * tree-optimize.c (init_tree_optimization_passes): Add
838         pass_object_sizes.
839         * tree-object-size.c: New file.
840         * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
841         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
842         compute_builtin_object_size, init_object_sizes, fini_object_sizes):
843         New prototypes.
844         * tree-ssa-ccp.c (get_strlen): Rename to ...
845         (get_maxval_strlen): ...this function.  Handle also computing of maximum
846         string length and maximum integral value.
847         (ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
848         instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
849         folding functions instead of computing them again.
850         (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
851         into some other builtin.
852         * doc/extend.texi (Object Size Checking): Document.
853
854         * regrename.c (copy_value): Fix comment.
855
856         * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
857         instead of preprocessor conditionals.
858
859         * targhooks.c (default_hidden_stack_protect_fail): Fall back to
860         default_external_stack_protect_fail if visibility is not supported
861         or not flag_pic.
862         * config/i386/i386.c (ix86_stack_protect_fail): New function.
863         (TARGET_STACK_PROTECT_FAIL): Define.
864         * config/i386/i386.md (stack_protect_si): Change CLOBBER into
865         SET to zero.
866         (stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
867         invalid instruction xorl %rax, %rax.
868
869 2005-06-27  Richard Henderson  <rth@redhat.com>
870
871         * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
872         * cfgexpand.c: Include params.h.
873         (has_protected_decls, has_short_buffer): New.
874         (expand_stack_vars): Take a predicate to determine what to expand.
875         (defer_stack_allocation): True when flag_stack_protect on.
876         (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
877         (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
878         (stack_protect_classify_type, stack_protect_decl_phase): New.
879         (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
880         (add_stack_protection_conflicts, create_stack_guard): New.
881         (expand_used_vars): Add stack protection logic.
882         (tree_expand_cfg): Likewise.
883         * common.opt (Wstack-protector): New.
884         (fstack-protector, fstack-protector-all): New.
885         * function.c: Include predict.h.
886         (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
887         wants to copy the parameter into the stack frame.
888         (stack_protect_prologue, stack_protect_epilogue): New.
889         (expand_function_end): Call stack_protect_epilogue.  Do 
890         sjlj_emit_function_exit_after after naked_return_label.
891         * function.h (struct function): Add stack_protect_guard.
892         * params.def (PARAM_SSP_BUFFER_SIZE): New.
893         * toplev.c (process_options): Disable flag_stack_protect and/or
894         warn_stack_protect based on FRAME_GROWS_DOWNWARD.
895         * tree.h (stack_protect_prologue): Declare.
896
897         * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
898         (TARGET_STACK_PROTECT_FAIL): New.
899         (TARGET_INITIALIZER): Add them.
900         * target.h (struct gcc_target): Add stack_protect_guard and
901         stack_protect_fail.
902         * targhooks.c: Include ggc.h, gty header.
903         (stack_chk_guard_decl, default_stack_protect_guard): New.
904         (stack_chk_fail_decl, default_external_stack_protect_fail): New.
905         (default_hidden_stack_protect_fail): New.
906         * targhooks.h (default_stack_protect_guard): Declare.
907         (default_external_stack_protect_fail): Declare.
908         (default_hidden_stack_protect_fail): Declare.
909         * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
910         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
911         (trap): Use ud2.
912         (conditional_trap, conditional_trap_1): Remove.
913         (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
914         (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
915         * doc/md.texi (stack_protect_set, stack_protect_test): New.
916         * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
917         (TARGET_STACK_PROTECT_FAIL): New.
918
919         * libgcc-std.ver (GCC_4.1.0): New.
920         * libgcc.h (__stack_chk_guard): Declare.
921         (__stack_chk_fail, __stack_chk_fail_local): Declare.
922         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
923         * mklibgcc.in (lib2funcs): Add them.
924
925 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
926
927         PR c/21911
928         * c-common.c (check_function_sentinel): Pass in named argument
929         list, skip over named arguments before looking for a sentinel.
930         (check_function_arguments): Pass in named argument list.
931         * c-common.h (check_function_arguments): Likewise.
932         * c-typeck.c (build_function_call): Likewise.
933
934 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
935
936         * genautomata.c (decl_mode_check_failed,
937         regexp_mode_check_failed): Add noreturn attribute.
938
939 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
940
941         * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
942         * doc/invoke.texi: Fix typos.
943
944         * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
945         convert.c, lambda-code.c, predict.c, tree-cfg.c,
946         tree-complex.c, tree-data-ref.c, tree-if-conv.c,
947         tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
948         tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
949         tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
950         tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
951         tree.c: Use fold_buildN instead of fold (buildN (...)).
952
953 2005-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
954
955         * doc/install.texi (Specific): Do not specify the concrete
956         versions of GCC provided by Cygwin.  Simplify the part on
957         building on Cygwin.
958
959 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
960
961         * config/arc/arc-protos.c: Remove the prototype for
962         arc_finalize_pic.
963         * config/arc/arc.c (arc_finalize_pic): Remove.
964         * config/arc/arc.h (FINALIZE_PIC): Likewise.
965         * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
966         * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
967
968 2005-06-26  Jakub Jelinek  <jakub@redhat.com>
969
970         PR middle-end/17965
971         * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
972         instead of alloca for really big argument sizes.
973
974         PR middle-end/22028
975         * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
976         earlier in the function.
977
978         * regrename.c (copy_value): Don't replace fixed or global
979         regs with older regs.
980
981         * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
982         * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
983         instead of preprocessor conditionals.
984         (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
985         * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
986         depending on if it was or was not defined previously.
987         * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
988         definition of FRAME_GROWS_DOWNWARD means frame grows downward.
989         * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
990         * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
991         comment.
992         * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
993         * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
994         * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
995         * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
996         * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
997         * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
998         * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
999         * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
1000         comment.
1001         * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1002         * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1003         * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1004         * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1005         * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1006         * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1007         * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1008         * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1009         * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1010         * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1011         * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1012         * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1013         * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1014         * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1015         * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1016         * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1017         * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1018         * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1019         * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1020
1021 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1022
1023         PR tree-optimization/22026
1024         * tree-vrp.c (extract_range_from_binary_expr): Drop to
1025         VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1026         PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1027
1028 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1029
1030         * Makefile.in (OBJS-common): Remove duplicate object file
1031         names.
1032
1033 2005-06-25  Jan Hubicka  <jh@suse.cz>
1034
1035         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1036         * cfg.c (update_bb_profile_for_threading): Fix rescaling.
1037
1038         * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1039         when not neecesary
1040         (rest_of_compilation): Fix conditional on branch prob pass.
1041         * predict.c (tree_estimate_probability): Enable strip_builtin_expect
1042         when not loop optimizing.
1043
1044 2005-06-25  Bernd Schmidt  <bernd.schmidt@analog.com>
1045
1046         * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1047         New patterns.
1048         (movbi): Add alternative to set CC to zero.
1049         (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1050         compare_ltu): Now named patterns.
1051
1052 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1053
1054         * all files: Update FSF address in copyright headers.
1055
1056 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1057
1058         * gengtype.c: Update FSF address in copyright header.
1059         (create_file): Update FSF in outputed copyright header.
1060
1061 2005-06-24  Kazu Hirata  <kazu@codesourcery.com>
1062
1063         * cfglayout.c (block_locators_locs, line_locators_locs,
1064         line_locators_lines, file_locators_locs): Change the type to
1065         VEC(int,heap)*.
1066         (insn_locators_initialize, change_scope, insn_scope,
1067         locator_line, insn_line, locator_file): Use VEC instead of
1068         VARRAY.
1069
1070 2005-06-24  Jason Merrill  <jason@redhat.com>
1071
1072         * tree-nrv.c (tree_nrv): Fix to check assignments to the
1073         RESULT_DECL rather than just RETURN_EXPRs.
1074         (finalize_nrv_r): Adjust.
1075
1076 2005-06-24  Jan Hubicka  <jh@suse.cz>
1077
1078         * tree-optimize.c (init_tree_optimization_passes): Fix flags of
1079         all_passes and all_ipa_passes.
1080
1081         * c-common.c: Include cgraph.h
1082         (handle_externally_visible_attribute): New function.
1083         (c_common_att): Add "externally_visible" attribute.
1084         * cgraph.c (decide_is_variable_needed): Obey externally
1085         visible flag.
1086         (cgraph_varpool_finalize_decl): Avoid redundant checking.
1087         * cgraph.h (struct cgraph_node): New flag externally_visible.
1088         (decide_is_function_needed): Obey externally visible flag.
1089         (cgraph_finalize_function): Avoid redundant checks.
1090         (cgraph_function_and_variable_visibility): Bring symbols local
1091         when asked for.
1092         * common.opt (fwhole-program): New flag.
1093
1094         * doc/invoke.texi (-fwhole-program): Document.
1095
1096 2005-06-24  Mark Mitchell  <mark@codesourcery.com>
1097
1098         PR 22171
1099         * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1100         before use.
1101
1102 2005-06-23  Mark Mitchell  <mark@codesourcery.com>
1103
1104         PR 22000
1105         * tree-ssa-operands.c (get_expr_operands): Check the volatility of
1106         the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1107
1108 2005-06-24  Jan Hubicka  <jh@suse.cz>
1109
1110         * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1111
1112 2005-06-23  Jeff Law  <law@redhat.com>
1113
1114         * tree-optimize.c (init_tree_optimization_passes): Move
1115         copy prop pass to run just before VRP.
1116         * tree-vrp.c (remove_range_assertions): Remove copies created
1117         by ASSERT_EXPR removal.
1118
1119 2005-06-23  Kazu Hirata  <kazu@codesourcery.com>
1120
1121         PR tree-optimization/22117
1122         * tree-vrp.c (extract_range_from_binary_expr): Compute a
1123         correct range when adding two pointers.
1124
1125 2005-06-23  Jason Merrill  <jason@redhat.com>
1126
1127         PR c++/19317
1128         Leave the return slot target in the MODIFY_EXPR rather than making
1129         it an argument, but only use it if the CALL_EXPR has a flag set.
1130         * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1131         CALL_EXPR_RETURN_SLOT_OPT.
1132         * calls.c (expand_call): Adjust.
1133         * tree-inline.c (expand_call_inline): Adjust.
1134         * tree-pretty-print.c (dump_generic_node): Adjust.
1135
1136         And set the flag as appropriate.
1137         * gimplify.c (gimplify_modify_expr_rhs): Set
1138         CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1139         * tree-nrv.c (execute_return_slot_opt): Set
1140         CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1141         * tree-pass.h: Declare pass_return_slot.
1142         * tree-optimize.c (init_tree_optimization_passes): Add it.
1143         
1144 2005-06-23  David Edelsohn  <edelsohn@gnu.org>
1145
1146         PR target/21760
1147         * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1148         * config/rs6000/rs6000.md: Move atomic instructions to ...
1149         * config/rs6000/sync.md: Here.
1150         Change sync_compare_and_swap<mode> to define_expand.  All stwcx
1151         patterns test PPC405_ERRATUM77.
1152
1153 2005-06-23  Jan Hubicka  <jh@suse.cz>
1154         
1155         * tree-inline.c (copy_body_r): Remap labels correctly.
1156
1157 2005-06-22  Alan Modra  <amodra@bigpond.net.au>
1158
1159         * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1160
1161 2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1162
1163         PR middle-end/20593
1164         * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1165         the same as the other cast operands.
1166         (output_addressed_constants): Likewise.
1167
1168 2005-06-21  Jeff Law  <law@redhat.com>
1169
1170         * tree-vrp.c (extract_range_from_unary_expr): Handle type
1171         conversions better.
1172
1173 2005-06-21  Dorit Nuzman  <dorit@il.ibm.com>
1174
1175         * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1176         (reduc_plus_optab): Removed.  Replcaed with...
1177         (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1178         * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1179         reduc_uplus_optab instead of reduc_plus_optab.
1180         (expand_vec_shift_expr): New function.
1181         (init_optabs): Initialize new optabs. Remove initialization of
1182         reduc_plus_optab.
1183         (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1184         for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1185         * optabs.h (OTI_reduc_plus): Removed. Replaced with...
1186         (OTI_reduc_splus, OTI_reduc_uplus): New.
1187         (reduc_plus_optab): Removed.  Replcaed with...
1188         (reduc_splus_optab, reduc_uplus_optab): New optabs.
1189         (vec_shl_optab, vec_shr_optab): New optabs.
1190         (expand_vec_shift_expr): New function declaration.
1191
1192         * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1193         * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1194         * expr.c (expand_expr_real_1): Handle new tree-codes.
1195         * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1196         * tree-vect-generic.c (expand_vector_operations_1): Add assert.
1197
1198         * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1199         alternatives for generating reduction epilog code.
1200         (vectorizable_reduction): Don't fail of direct reduction support is
1201         not available.
1202         (vectorizable_target_reduction_pattern): Likewise.
1203
1204         * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1205         reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1206         reduc_plus_v4si, reduc_plus_v4sf): Removed.
1207         (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
1208         reduc_splus_<mode>, reduc_uplus_v16qi): New.
1209
1210 2005-06-20  Daniel Berlin  <dberlin@dberlin.org>
1211
1212         * c-typeck.c (build_function_call): Set fundecl = function again.
1213         * tree-ssa-alias.c (find_used_portions): Address taking causes the
1214         entire variable to be used.
1215         * tree-ssa-structalias.c (do_structure_copy): Fix handling of
1216         unknown size variables, and structure copies from addressof
1217         operations.  Simplify how we do *a = *b type structure copies.
1218         (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1219         way.  READONLY's address is not taken by default.
1220         INTEGER dereference should point to anything.
1221         (create_variable_info_for): It's okay for the first field to not start
1222         at 0.
1223
1224 2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1225
1226         config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1227
1228 2005-06-20  Roger Sayle  <roger@eyesopen.com>
1229             Fariborz Jahanian <fjahanian@apple.com>
1230
1231         * combine.c (simplify_set): Simplify setting of CC register
1232         by removing redundant compare with 0 on RHS.
1233
1234 2005-06-20  Jan Beulich  <jbeulich@novell.com>
1235
1236         * config/i386/netware-libgcc.def: Update copyright.
1237         * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1238         __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1239         * config/i386/netware.c (gen_stdcall_decoration,
1240         gen_fastd_decoration): Merge into ...
1241         (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1242         WinNT's changes.
1243         (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1244         (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1245         * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1246         libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1247         * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1248         use of NX_MUTEX_RECURSIVE.
1249
1250 2005-06-19  Roger Sayle  <roger@eyesopen.com>
1251
1252         * fold-const.c (swap_tree_comparison): Add support for unordered
1253         floating point comparisons.
1254         * tree-vrp.c (opposite_comparison): Delete.
1255         (extract_range_from_assert): Replace calls to opposite_comparison
1256         with calls to swap_tree_comparison.
1257         (register_edge_assert_for): Likewise.
1258         (vrp_evaluate_conditional): Likewise.
1259
1260 2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1261
1262         * integrate.c (allocate_initial_values): Update the references
1263         to global_live_at_start and global_live_at_end.
1264
1265 2005-06-20  Jan Hubicka  <jh@suse.cz>
1266
1267         * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1268         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1269         when asked for.
1270         * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1271         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1272         Update call of duplicate_loop_to_header_edge.
1273         (apply_opt_in_copies): Clear out aux pointers.
1274
1275 2005-06-19  Joseph S. Myers  <joseph@codesourcery.com>
1276
1277         * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1278         (ix86_mangle_fundamental_type): New.
1279         * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1280         (ia64_mangle_fundamental_type): New.
1281
1282 2005-06-19  Roger Sayle  <roger@eyesopen.com>
1283
1284         * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1285         INTEGER_CST nodes.
1286         * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1287         CONSTANT_CLASS_P nodes.
1288
1289 2005-06-19  Richard Henderson  <rth@redhat.com>
1290
1291         * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1292         the shift is always required.
1293
1294 2005-06-19  Richard Henderson  <rth@redhat.com>
1295
1296         * config/ia64/ia64-modes.def (V4SF): Add.
1297         * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1298         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to 
1299         integer mode changes in fp regs.
1300         * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1301         * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1302         (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1303         (vcondv2sf): Use gen_fpack
1304         (fpack): Remove * from name.
1305         (fswap, fmix_l, fmix_r, fmix_lr): New.
1306         (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1307         (vec_extractv2sf_1, vec_extractv2sf): New.
1308
1309 2005-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1310
1311         * combine.c (make_compound_operation): Use simplify_subreg.  Delete
1312         a optimization already done by simplify_subreg.
1313
1314 2005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>
1315
1316         * loop.c (scan_loop): Do not consider insns setting the frame
1317         pointer to be candidates for hoisting.
1318
1319 2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1320
1321         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1322         Remove instruction patterns.
1323         (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1324         (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
1325         Set "unit" attribute to "i387".
1326         (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1327         (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1328         for alternative 0.
1329         (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1330         (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1331         attribute to "i387" when "type" attribute equals "multi".
1332         (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1333         (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1334         (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1335         (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1336         attribute to "i387" when "type" attribute equals "multi".
1337         * config/i386/mmx.md (*mov<mode>_internal_rex64)
1338         (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1339         Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1340         (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1341         * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1342         (sse_cvttpd2pi): Set "unit" attribute to "mmx".
1343         (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1344         to "mmx" for "y" operand 1.
1345
1346 2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1347
1348         * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1349         for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1350         and SSE registers to determine if regno is valid.
1351         (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1352         TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1353
1354 2005-06-18  Richard Henderson  <rth@redhat.com>
1355
1356         * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1357         for control-altering statements; set it again for returns.
1358         (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1359         not MODIFY_EXPR.
1360
1361 2005-06-18  Richard Henderson  <rth@redhat.com>
1362
1363         PR tree-opt/22116
1364         * tree-ssa-pre.c (create_expression_by_pieces): Set
1365         DECL_COMPLEX_GIMPLE_REG_P.
1366         (insert_into_preds_of_block): Likewise.
1367
1368 2005-06-18  Steven Bosscher  <stevenb@suse.de>
1369
1370         * Makefile.in: Fix tree-cfgcleanup.c dependencies.
1371
1372 2005-06-18  Richard Henderson  <rth@redhat.com>
1373
1374         * expr.c (store_constructor): Use store of 0 to indicate value
1375         death instead of a clobber.
1376
1377         * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1378         * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1379         * config/i386/sse.md (reduc_plus_v4sf): New.
1380         (reduc_smax_v4sf, reduc_smin_v4sf): New.
1381
1382 2005-06-18  James A. Morrison  <phython@gcc.gnu.org>
1383
1384         * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1385         nonnegative values of X.
1386
1387 2005-06-18  Uros Bizjak  <uros@kss-loka.si>
1388
1389         * doc/md.texi (Standard Names): Change insn pattern name
1390         from truncM2 to btruncM2 for 'trunc' built-in description.
1391         Add rintM2 insn pattern description.
1392
1393 2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1394
1395         * c-decl.c (locate_old_decl): Add format attribute.
1396         (implicit_decl_warning): Likewise.
1397
1398         * diagnostic.h (verbatim): Move ...
1399         * toplev.h (verbatim): ... here.  Add ATTRIBUTE_GCC_DIAG.
1400         * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1401
1402 2005-06-18  Roger Sayle  <roger@eyesopen.com>
1403
1404         PR target/22083
1405         * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1406
1407 2005-06-18  Dorit Nuzman  <dorit@il.ibm.com>
1408
1409         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1410         tree-codes.
1411         * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1412         OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction. 
1413         (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1414         reduc_plus_optab): New optabs for reduction.
1415         * expr.c (expand_expr_real_1): Handle new tree-codes.
1416         * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1417         * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1418         new tree-codes.
1419         * optabs.c (optab_for_tree_code): Handle new tree-codes.
1420         (init_optabs): Initialize new optabs.
1421         * genopinit.c (optabs): Define handlers for new optabs. 
1422
1423         * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1424         case of a phi that is marked as relevant. Call vectorizable_reduction.
1425         (vect_mark_relevant): Phis may be marked as relevant.
1426         (vect_mark_stmts_to_be_vectorized): The use corresponding to the 
1427         reduction variable in a reduction stmt does not mark its defining phi
1428         as relevant. Update documentation accordingly.
1429         (vect_can_advance_ivs_p): Skip reduction phis.
1430         * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1431         additional argument. Handle reduction.
1432         (vect_create_destination_var): Update call to vect_get_new_vect_var.
1433         Handle non-vector argument.
1434         (get_initial_def_for_reduction): New function.
1435         (vect_create_epilog_for_reduction): New function. 
1436         (vectorizable_reduction): New function.
1437         (vect_get_new_vect_var): Handle new vect_var_kind.       
1438         (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1439         vectorizable_condition): Update call to vect_get_new_vect_var.
1440         (vect_transform_stmt): Call vectorizable_reduction.
1441         (vect_update_ivs_after_vectorizer): Skip reduction phis.
1442         (vect_transform_loop): Skip if stmt is both not relevant and not live.
1443         * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1444         (vect_is_simple_reduction): Was empty - added implementation.
1445         * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1446         (reduc_vec_info_type): New enum vect_def_type value.
1447         * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1448         reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1449         reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1450
1451         * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1452         ENABLE_CHECKING around gcc_assert.
1453         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1454         (vect_do_peeling_for_alignment, vect_transform_loop, 
1455         vect_get_vec_def_for_operand): Likewise.
1456
1457 2005-06-18  Joseph S. Myers  <joseph@codesourcery.com>
1458
1459         * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1460         big-endian unnamed __float80 value.
1461
1462 2005-06-18  Richard Henderson  <rth@redhat.com>
1463
1464         PR tree-opt/22103
1465         * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1466         destinations.
1467
1468 2005-06-17  Richard Henderson  <rth@redhat.com>
1469
1470         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1471         initialize_original_copy_tables and free_original_copy_tables.
1472         (vect_do_peeling_for_alignment): Likewise.
1473
1474 2005-06-17  Pat Haugen  <pthaugen@us.ibm.com>
1475
1476         * bb-reorder.c (find_traces_1_round): Use succ block frequency
1477         instead of edge frequency for calls to better_edge_p.
1478
1479 2005-06-17  Andrew Pinski  <pinskia@physics.uc.edu>
1480
1481         PR tree-opt/22105
1482         * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1483
1484 2005-06-17  Steve Ellcey  <sje@cup.hp.com>
1485
1486         PR target/19889
1487         * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1488         (PROFILE_HOOK): New.
1489         (PROFILE_BEFORE_PROLOGUE): Undef.
1490         (NO_PROFILE_COUNTERS): New.
1491         * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1492         * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1493         (gen_mcount_func_rtx): New.
1494         (ia64_profile_hook): New.
1495         * config/ia64/ia64.md (ip_value): New.
1496
1497 2005-06-17  Devang Patel  <dpatel@apple.com>
1498
1499         * config/rs6000/predicates.md (s5bit_cint_operand,
1500         u5bit_cint_operand): New.
1501         * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1502         altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1503         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1504         5 bit constant check.
1505         
1506 2005-06-17  Richard Henderson  <rth@redhat.com>
1507
1508         * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1509         properly when moving an initialization insn.
1510
1511 2005-06-17  Paolo Bonzini  <bonzini@gnu.org>
1512
1513         * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1514         passed variable.
1515         * configure.ac: Regenerate.
1516
1517 2005-06-17  Jan Hubicka  <jh@suse.cz>
1518
1519         * tree-optimize.c (execute_ipa_pass_list): New.
1520         (ipa_passes): Use it.
1521
1522 2005-06-16  Richard Henderson  <rth@redhat.com>
1523
1524         PR tree-opt/22022
1525         * tree-complex.c (update_phi_components): Avoid no-op moves.
1526
1527 2005-06-16  Joseph S. Myers  <joseph@codesourcery.com>
1528
1529         * Makefile.in (cc1-checksum.c): Use
1530         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1531
1532 2005-06-16  Geoffrey Keating  <geoffk@apple.com>
1533
1534         * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1535         basic_block types.
1536
1537         * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1538         SHLIB_MINOR.
1539         (SHLIB_REVISION): Delete.
1540         (SHLIB_VERSTRING): Update to compensate.
1541         (SHLIB_SONAME): Just use one '.' in the name.
1542
1543 2005-06-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1544
1545         PR tree-optimization/22018
1546         * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1547
1548 2005-06-16  Richard Henderson  <rth@redhat.com>
1549
1550         PR tree-opt/22035
1551         * builtins.c (fold_builtin_complex_mul): Remove.
1552         (fold_builtin_complex_div): Remove.
1553         (fold_builtin_1): Don't call them.
1554         * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1555         fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1556         (fold_binary): Don't call them.  Don't expand complex comparisons to
1557         elementary comparisons.
1558         * tree-complex.c (init_dont_simulate_again): Enhance search for 
1559         stmts that require decomposition.
1560         (complex_visit_stmt): Handle RETURN_EXPR properly.
1561         (create_components): Handle no referenced variables properly.
1562         * tree.h (fold_complex_mult_parts): Remove.
1563         (fold_complex_div_parts): Remove.
1564
1565 2005-06-16  Richard Guenther  <rguenth@gcc.gnu.org>
1566
1567         * doc/extend.texi: Document sseregparm target attribute.
1568         Clarify fastcall and regparm documentation.
1569         * config/i386/i386.h: Adjust float_in_sse documentation.
1570         * config/i386/i386.c: Add new target attribute sseregparm.
1571         (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1572         Merge into ...
1573         (ix86_handle_cconv_attribute): ... here.  Also handle
1574         sseregparm attribute.
1575         (ix86_comp_type_attributes): Compare sseregparm attributes.
1576         (ix86_function_sseregparm): New function, split out from ...
1577         (init_cumulative_args): ... here.  Use to decide use
1578         of SSE registers and error in case of missing support.
1579         (ix86_value_regno): Likewise.
1580         (function_arg_advance): Do not bail out for DFmode if we need
1581         to pass doubles in registers.
1582         (function_arg): Likewise.
1583
1584 2005-06-16  Paolo Bonzini  <bonzini@gnu.org>
1585             Daniel Jacobowitz  <dan@codesourcery.com>
1586             Alan Modra <amodra.bigpond.net.au>
1587
1588         * configure.ac (gcc_version): Set near the beginning.
1589         (as, ld, nm): Do not link in-tree tools.  Set gcc_cv_* if tools are
1590         found in the tree.  Use gcc_AC_PROG to find the tools in the system.
1591         (objdump): Do not look for it.
1592         * Makefile.in (NM_FOR_TARGET): Point to ./nm
1593         (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1594         ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1595         (as, ld, nm): New rules.
1596         (libgcc.mk): Depend on them.
1597         * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1598         gcc_AC_BUILD_EXEEXT): New.
1599         (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1600         * configure: Regenerate.
1601
1602 2005-06-16  Jan Hubicka  <jh@suse.cz>
1603
1604         * basic-block.h (rtl_bb_info): Break out head_, end_,
1605         global_live_at_start, global_live_at_end from ...
1606         (basic_block_def): ... here; update all references
1607         (BB_RTL): New flag.
1608         (init_rtl_bb_info): Declare.
1609         * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1610         flag.
1611         * cfgrtl.c: Include ggc.h
1612         (create_basic_block_structure): Init bb info.
1613         (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1614         (init_rtl_bb_info): New function.
1615         (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1616         * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1617         * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1618         (dump_flow_info): Gueard global_live_* dumping.
1619
1620         * Makefile.in (cfg.o): Add new dependencies.
1621         * basic-block.h (reorder_block_def): Kill
1622         original/copy/duplicated/copy_number fields.
1623         (BB_DUPLICATED): New flag.
1624         (initialize_original_copy_tables, free_original_copy_tables,
1625         set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1626         * cfg.c: Include hashtab.h and alloc-pool.h
1627         (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1628         (htab_bb_copy_original_entry): New struct.
1629         (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1630         (initialize_original_copy_tables, free_original_copy_tables,
1631         set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1632         global functions.
1633         * cfghooks.c (duplicate_block): Update original/copy handling.
1634         * cfglayout.c (fixup_reorder_chain): Likewise.
1635         (cfg_layout_initialize): Initialize orignal_copy tables.
1636         (cfg_layout_finalize): FInalize original_copy tables.
1637         (can_copy_bbs_p): Use BB_DUPLICATED flag.
1638         (copy_bbs): Likewise.
1639         * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1640         (duplicate_loop_to_header_edge): Likewise; update handling of
1641         copy_number.
1642         (loop_version): Likewise.
1643         * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1644         * except.c (expand_resx_expr): Check that reg->resume is not set.
1645         * loop-unroll.c (unroll_loop_constant_iterations,
1646         unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1647         copy/original handling.
1648         * loop-unwitch.c (unswitch_loop): Likewise.
1649         * tree-cfg.c (create_bb): Do not initialize RBI.
1650         (disband_implicit_edges): Do not kill RBI.
1651         (add_phi_args_after_copy_bb): Use new original/copy mapping.
1652         (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1653         (tree_duplicate_sese_region): Update original/copy handling.
1654         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1655         * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1656         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1657
1658 2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1659
1660         PR tree-opt/21923
1661         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1662         integer types whos ranges are different are not useless.
1663
1664 2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1665
1666         PR tree-opt/22024
1667         * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1668         rank.
1669
1670 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1671
1672         * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1673         output.
1674         (dump_sa_points_to_info): Make extern.
1675         (debug_sa_points_to_info): New.
1676         * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1677         TREE_ALIAS_COMMON.
1678         (dump_sa_points_to_info): Declare.
1679         (debug_sa_points_to_info): Declare.
1680
1681 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
1682
1683         * c-tree.h (default_function_array_conversion): Declare.
1684         * c-typeck.c (default_function_array_conversion): Export.  Correct
1685         comment.
1686         (default_conversion): Do not call
1687         default_function_array_conversion.  Do not allow FUNCTION_TYPE.
1688         (build_function_call): Call default_function_array_conversion on
1689         the function.
1690         (convert_arguments): Do not call it on the function arguments.
1691         (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1692         TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
1693         address of ARRAY_REF.
1694         (build_compound_expr): Do not call
1695         default_function_array_conversion.
1696         (build_c_cast): Do not call default_function_array_conversion.
1697         (convert_for_assignment): Do not call default_conversion.
1698         (digest_init): Call default_function_array_conversion to convert
1699         string constants and compound literals to pointers, but not
1700         otherwise.
1701         (output_init_element): Likewise.
1702         (build_asm_expr): Do not call default_function_array_conversion.
1703         (c_process_expr_stmt): Likewise.
1704         (c_objc_common_truthvalue_conversion): Likewise.  Do not allow
1705         FUNCTION_TYPE.
1706         * c-parser.c (c_parser_expression_conv): New.
1707         (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1708         argument.  All callers changed.  Call
1709         default_function_array_conversion if convert_p.
1710         (c_parser_initializer, c_parser_initval): Call
1711         default_function_array_conversion except for string constants and
1712         compound literals.
1713         (c_parser_initelt): Call default_function_array_conversion for
1714         ObjC expression received.
1715         (c_parser_statement_after_labels): Call c_parser_expression_conv
1716         for return and expression statements.
1717         (c_parser_paren_condition, c_parser_for_statement,
1718         c_parser_conditional_expression): Call c_parser_expression_conv.
1719         (c_parser_expr_no_commas, c_parser_conditional_expression,
1720         c_parser_binary_expression, c_parser_cast_expression,
1721         c_parser_unary_expression): Call
1722         default_function_array_conversion.
1723
1724 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1725
1726         * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1727         when the result overflows.
1728
1729 2005-06-15  David Ung  <davidu@mips.com>
1730
1731         * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1732         24k and 24kx.
1733         
1734 2005-06-15  Richard Sandiford  <richard@codesourcery.com>
1735
1736         * doc/invoke.texi (-mips16): Fix typo.
1737
1738 2005-06-15  David Ung  <davidu@mips.com>
1739
1740         * config/mips/mips.h (GENERATE_MIPS16E): New definition.
1741         * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
1742         Changed expand condition to exclude generating of "and" if
1743         GENERATE_MIPS16E is true.
1744         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
1745         matching mips16e zeb/zeh.
1746         (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1747         mips16e seb/seh. 
1748         (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1749         GENERATE_MIPS16E. 
1750         * doc/invoke.texi (MIPS Options): Add comment to -mips16
1751         indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1752         
1753 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1754
1755         PR 22018
1756         * tree-vrp.c (vrp_int_const_binop): New.
1757         (extract_range_from_binary_expr): Call it.
1758         Unify handling division and multiplication.
1759
1760 2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
1761
1762         * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1763
1764         * c-common.c (same_scalar_type_ignoring_signedness): New.
1765
1766         * c-typeck.c (build_binary_op): Check compatability of vector
1767         types.  Move error report after switch.
1768         Do not clobber code[01] on *_DIV_EXPR case.
1769
1770         * testsuite/gcc.dg/simd-1.c: Update error messages.
1771         * testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
1772         messages.
1773         * testsuite/gcc.dg/simd-2.c: Update error messages.
1774         * testsuite/gcc.dg/simd-4.c: New.
1775
1776 2005-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1777
1778         * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1779         * local-alloc.c: Include "ggc.h" and "reload.h".
1780         (struct equivalence): New member is_arg_equivalence.
1781         (local_alloc): Always call update_equiv_regs.
1782         (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1783         Detect equivalences made by stores to memory in a second pass.
1784         Return early if not optimizing.
1785         Initialize reg_equiv_init for all equivalences; treat equivalences for
1786         REG_EQUIV notes existing before this pass specially.
1787         (no_equiv): Don't clear reg_equiv_init or remove notes if the
1788         is_arg_equivalence field is set.
1789         * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1790         * reload1.c (reg_equiv_init): No longer static.
1791         (reg_equiv_init_size): New variable.
1792         (reload): Don't allocate reg_equiv_init; don't free it when done but
1793         clear it.
1794         Restructure equivalence set up code not to set reg_equiv_init, but to
1795         clear it when we can't use an equivalence.
1796         Undo change disabling equivalences for MEM_READONLY_P memrefs.
1797         Dump equivalencing insns to dump_file.
1798
1799 2005-06-14  Richard Sandiford  <richard@codesourcery.com>
1800
1801         * config/mips/mips.c (machine_function): Add varargs_size field.
1802         (mips_setup_incoming_varargs): Store the amount of extra stack space
1803         there rather than in *pretend_size.  When saving registers, always
1804         expect virtual_incoming_args_rtx to point to the start of the
1805         pretend arguments.
1806         (mips_va_start): Remove alignment hack.  Handle all
1807         !EABI_FLOAT_VARARGS_P cases in the same way.
1808         (compute_frame_size): Handle varargs_size.  Remove the redundant
1809         !TARGET_OLDABI condition in the handling of pretend_args_size.
1810         (mips_initial_elimination_offset): Remove the now-redundant check
1811         of TARGET_NEWABI.
1812
1813 2005-06-14  Jeff Law  <law@redhat.com>
1814
1815         * tree-vrp.c (local_fold): Remove.
1816         (simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
1817         DIV/MOD case slightly for readability.
1818
1819 2005-06-14  Frank Ch. Eigler  <fche@redhat.com>
1820
1821         PR mudflap/21023
1822         * tree-mudflap.c (mudflap_finish_file): Exclude non-public
1823         rather than static objects (!) from libmudflap registration.
1824
1825 2005-06-14  Richard Sandiford  <richard@codesourcery.com>
1826
1827         * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1828         (var_ref): Take the option's flags as a second parameter.  Check
1829         static_var.
1830         * optc-gen.awk: Declare local state variables.  Pass flags to var_ref.
1831
1832 2005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1833
1834         PR target/20301
1835         * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1836         unsigned index numbers.
1837
1838 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
1839
1840         * Makefile.in (install-man): Doesn't really depend on installdirs.
1841         (various rules for installing manpages): Do depend on installdirs.
1842
1843 2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1844
1845         * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1846         read_encoded_value_with_base call.
1847         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1848         * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1849         * unwind-dw2.c (extract_cie_info): Fix aliasing in
1850         read_encoded_value call.
1851         (execute_cfa_program, uw_frame_state_for): Likewise.
1852
1853 2005-06-13  Roger Sayle  <roger@eyesopen.com>
1854
1855         PR rtl-optimization/22053
1856         * reg-stack.c (compensate_edge): Correct mistake in the assertion
1857         checking of EDGE_ABNORMAL_CALL edges; complex return values can
1858         result in the top two stack slots, st(0) and st(1), being live.
1859
1860 2005-06-13  Jeff Law  <law@redhat.com>
1861
1862         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1863         simplify DIV, MOD or ABS expressions using VRP information.
1864         Remove WALK_DATA parameter.  Prototype and all callers updated.
1865         (eliminate_redundant_computations): Remove WALK_DATA parameter.
1866         Prototype and all callers updated.
1867         (optimize_stmt): WALK_DATA parameter is now unused.
1868
1869         * tree-vrp.c (local_fold): New function.  Like fold, but
1870         strips useless type conversions in the result.
1871         (simplify_using_ranges): New function, largely cribbed from
1872         tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1873         (vrp_finalize): Call simplify_using_ranges.
1874
1875 2005-06-13  Mark Mitchell  <mark@codesourcery.com>
1876
1877         * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1878         assembler in 64-bit mode.
1879
1880 2005-06-13  David Edelsohn  <edelsohn@gnu.org>
1881
1882         Revert scc_operand patch.
1883         * config/rs6000/predicates.md (scc_operand): Delete.
1884         * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1885
1886 2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
1887
1888         PR middle-end/21985
1889         * fold-const.c (split_address_to_core_and_offset): Always return
1890         the address of the base object.
1891
1892 2005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1893
1894         * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1895
1896 2005-06-12  Richard Henderson  <rth@redhat.com>
1897
1898         PR tree-opt/21994
1899         * tree-complex.c (update_complex_components_on_edge): New.
1900         (update_parameter_components): Use it.
1901         (update_phi_components): Likewise.
1902         (expand_complex_move): Likewise for is_ctrl_altering_stmt.
1903
1904 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1905
1906         PR tree-optimization/14796
1907         * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1908         for unsigned types.
1909
1910 2005-06-12  Kazu Hirata  <kazu@codesourcery.com>
1911
1912         * cgraphunit.c, tree-ssa-loop-ivopts.c,
1913         tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1914         config/sparc/sparc.c: Fix comment typos.
1915
1916 2005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1917
1918         * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1919         (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1920         * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1921         (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1922
1923 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1924
1925         PR tree-optimization/14796
1926         * fold-const.c (fold_binary): Transform (A >> C) << C into
1927         one BIT_AND_EXPR.
1928         <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
1929
1930 2005-06-11  Geoffrey Keating  <geoffk@apple.com>
1931
1932         * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1933         (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1934         Handle SImode.
1935         (reg_or_sub_cint_operand): Likewise.
1936         (mask_operand): Handle DImode.
1937         (mask64_operand): Delete.
1938         (and64_operand): Delete.
1939         * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1940         instead of mask64_operand.
1941         (print_operand): Likewise.
1942         (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1943         reg_or_sub_cint_operand instead of *64_* variants.
1944         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1945         instead of mask64_operand.
1946         * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1947         of *64_* variants.
1948         (FP): New.
1949         (add_op2): Delete.
1950         (add<mode>3): Use reg_or_add_cint_operand.
1951         (sub_op2): Delete.
1952         (sub<mode>3): Use reg_or_sub_cint_operand.
1953         (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
1954         mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
1955         cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
1956         ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
1957         ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
1958         return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
1959         various unnamed patterns): New.
1960         (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
1961         cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
1962         ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
1963         return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
1964         udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
1965         cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
1966         ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
1967         return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
1968         movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
1969         Delete.
1970
1971 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1972
1973         * rtl.h (to_rtx_code): Remove.
1974         * machmode.h (to_machine_mode): Likewise.
1975         * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
1976         explicit cast.
1977         (apply_mode_maps): Likewise.
1978         (read_rtx_1): Likewise.
1979         (apply_code_macro): Replace to to_rtx_code with explicit cast.
1980         (check_code_macro): Likewise.
1981         (read_rtx_1): Likewise.
1982
1983 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1984
1985         * c-typeck.c (convert_for_assignment): Avoid checking
1986         OPT_Wc___compat, as it is always true.
1987
1988 2005-06-11  David Edelsohn  <edelsohn@gnu.org>
1989
1990         * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
1991
1992 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
1993
1994         Fix PR tree-optimization/22005
1995         Fix PR tree-optimization/22025
1996         
1997         * tree-ssa-structalias.c (struct variable_info): Add has_union
1998         member.
1999         (create_variable_info_for):  Mark variables containing unions.
2000         Don't sort the field stack if notokay is true.
2001         (find_what_p_points_to): Convert variables containing unions back
2002         to their SFT's if necessary.
2003         
2004 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
2005
2006         * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2007         is an INTEGER_CST before calling int_cst_value.
2008
2009 2005-06-10  Uros Bizjak  <uros@kss-loka.si>
2010
2011         PR target/21981
2012         * config/i386/i386.c (ix86_function_value_regno_p): Return true
2013         for FIRST_MMX_REG if TARGET_MMX.
2014         (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2015         wrong comment.
2016         (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2017         (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2018
2019 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
2020
2021         * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2022         and access function against chrec_dont_know.
2023           
2024 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
2025
2026         * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2027         slightly.
2028         (exit_phi_for_loop_p): New function.
2029         (can_put_in_inner_loop): Ditto.
2030         (can_convert_to_perfect_nest): Ditto.
2031         (perfect_nestify): Create iv with right type.
2032         Rewrite statements in correct order.    
2033
2034 2005-06-10  Keith Besaw  <kbesaw@us.ibm.com>
2035
2036         * tree-ssa-alias.c (new_type_alias): Use existing type
2037         tag if VAR has just one in its may_aliases list.
2038
2039 2005-06-10  Fariborz Jahanian <fjahanian@apple.com>
2040
2041         * rs6000/predicates.md (scc_operand): New.
2042         * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2043
2044 2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
2045
2046         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2047         dependence-distance modulo VF is 0 are recorded in the 
2048         SAME_ALIGN_REFs VEC in each DR.
2049         (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2050         alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2051         DR we want to peel for, is set to 0.
2052         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2053         * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2054         VEC.
2055         * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2056         (_stmt_vec_info): Added new field same_align_refs.
2057         (STMT_VINFO_SAME_ALIGN_REFS): New macro.
2058
2059 2005-06-10  Nathan Sidwell  <nathan@codesourcery.com>
2060
2061         * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2062
2063 2005-06-10  Alan Modra  <amodra@bigpond.net.au>
2064
2065         * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2066         * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2067         * config/rs6000/rs6000.c (output_function_profiler): Obey
2068         NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
2069         for -fPIC.  Delete save_lr and substitute its value into strings.
2070
2071 2005-06-09  Dale Johannesen  <dalej@apple.com>
2072
2073         * config/i386/i386.c (optimization_options):  Make -fno-math-errno
2074         the default on Darwin.
2075         * config/rs6000/rs6000.c (optimization_options):  Ditto.
2076         * doc/invoke.texi (-fno-math-errno): Document.
2077
2078 2005-06-09  Dale Johannesen  <dalej@apple.com>
2079
2080         * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2081         Change to TARGET_INVALID_WITHIN_DOLOOP.
2082
2083 2005-06-09  David Edelsohn  <edelsohn@gnu.org>
2084
2085         * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2086         * config/rs6000/predicates.md (scc_eq_operand): New.
2087
2088 2005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2089
2090         * config/sh/sh.md (mextr_rl): Set buffer size properly.
2091         (*mextr_lr): Likewise.
2092
2093 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2094
2095         PR c/21759
2096         * c.opt (Wc++-compat): New.
2097         * doc/invoke.texi (-Wc++-compat): Document.
2098         * c-typeck.c (convert_for_assignment): Check for implicit
2099         conversion void* -> T*.
2100
2101 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>
2102
2103         * machmode.h (to_machine_mode): New.
2104         * rtl.h (to_rtx_code): Likewise.
2105         * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2106         (print_c_condition): Convert return value of htab_find().
2107         (apply_code_macro): Add explicit cast when convertin to enums.
2108         (apply_mode_maps): Likewise.
2109         (check_code_macro): Likewise.
2110         (read_rtx_1): Likewise.
2111
2112 2005-06-09  Richard Henderson  <rth@redhat.com>
2113
2114         * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2115         Use SCALAR_FLOAT_MODE_P.
2116         * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2117         (fselect): Rename from fpcmp; use %F.
2118         (fpcmp): New.
2119
2120 2005-06-09  Jan Hubicka  <jh@suse.cz>
2121
2122         * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2123         local statics when doing unit-at-a-time.
2124         (cgraph_varpool_assemble_pending_decls): Output debug info.
2125         * dwarf2out.c (decls_for_scope): Skip local statics.
2126         (dwarf2out_decl): Handle local statics.
2127         * passes.c (rest_of_decl_compilation): Do not differentiate
2128         local and global statics in unit-at-a-time.
2129         * tree-inline.c (remap_decls): Put local static into
2130         unexpanded_vars_list rather than introducing duplicated VAR_DECL
2131         node.
2132
2133 2005-06-09  Daniel Berlin  <dberlin@dberlin.org>
2134
2135         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2136         prototype.
2137
2138 2005-06-08  Daniel Berlin  <dberlin@dberlin.org>
2139
2140         * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2141         * tree-flow.h (find_what_p_points_to): Add prototype.
2142         (push_fields_onto_fieldstack): Ditto.
2143         (sort_fieldstack): Ditto.
2144         * tree-optimize.c (init_tree_optimization_passes): Add
2145         pass_build_pta and pass_del_pta.
2146         * tree-pass.h (pass_build_pta): New structure.
2147         (pass_del_pta): Ditto.
2148         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2149         using new alias analyzer.
2150         (push_fields_onto_fieldstack): Removed from here.
2151         (bitpos_of_field): Ditto.
2152         (fieldoff_compare): Ditto.
2153         * tree-ssa-structalias.c: New file.
2154         * tree-ssa-structalias.h: Ditto.
2155
2156 2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
2157
2158         * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2159         too.
2160
2161 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2162
2163         * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2164         * config/bfin/bfin.h (enum bfin_builtins): ... here.
2165
2166 2005-06-09  Adrian Straetling  <straetling@de.ibm.com>
2167
2168         * target.h (insn_valid_within_doloop): Rename into
2169         "invalid_within_doloop".  Change return type to "const char *".
2170         Update Comment.
2171         * targhooks.h (default_insn_valid_within_doloop): Rename into
2172         "default_invalid_within_doloop". 
2173         * targhooks.c (default_insn_valid_within_doloop): Likewise.
2174         Update Comment.
2175         * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2176         into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2177         "default_invalid_within_doloop".
2178         * hooks.c (hook_constcharptr_rtx_null): New function.
2179         (hook_bool_rtx_true): Remove.
2180         * hooks.h (hook_constcharptr_rtx_null): Declare.
2181         (hook_bool_rtx_true): Remove.
2182         * loop-doloop.c (doloop_valid_p): Temporarily store return value of
2183         "invalid_within_doloop" and print error message if non-null.
2184         Update Comment.
2185         * doc/tm.texi: Update documentation.
2186         * config/s390/s390.c: Adjust to new hook name and new default hook.
2187         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2188         into "rs6000_invalid_within_doloop".
2189         (rs6000_invalid_within_doloop): Change return type to "static const
2190         char *" and replace return values.  Update Comment.
2191
2192 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2193
2194         * config/bfin/bfin.opt (mlong-calls): New.
2195         * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2196         if TARGET_LONG_CALLS.
2197
2198 2005-06-09  Richard Henderson  <rth@redhat.com>
2199
2200         PR tree-opt/20610
2201         * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2202         (struct tree_decl): Add gimple_reg_flag.
2203         * integrate.c (copy_decl_for_inlining): Copy it.
2204         * gimplify.c (internal_get_tmp_var): Set it.
2205         (gimplify_bind_expr): Likewise.
2206         (gimplify_function_tree): Likewise.
2207         (gimplify_modify_expr_complex_part): New.
2208         (gimplify_modify_expr): Use it.
2209         * tree-gimple.c (is_gimple_reg_type): Allow complex.
2210         (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2211
2212         * tree-complex.c (complex_lattice_t): New.
2213         (complex_lattice_values, complex_variable_components): New.
2214         (some_nonzerop, find_lattice_value, is_complex_reg,
2215         init_parameter_lattice_values, init_dont_simulate_again, 
2216         complex_visit_stmt, complex_visit_phi, create_components,
2217         update_complex_components, update_parameter_components, 
2218         update_phi_components, update_all_vops, expand_complex_move): New.
2219         (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2220         SSA_NAME.
2221         (update_complex_assignment): Use update_complex_components;
2222         handle updates of return_expr properly.
2223         (expand_complex_addition): Use complex lattice values.
2224         (expand_complex_multiplication): Likewise.
2225         (expand_complex_division): Likewise.
2226         (expand_complex_libcall): Use update_complex_components.
2227         (expand_complex_comparison): Use update_stmt.
2228         (expand_complex_operations_1): Use expand_complex_move, retrieve
2229         lattice values.
2230         (tree_lower_complex): Compute lattice values.
2231         (tree_lower_complex_O0): Duplicate from tree_lower_complex.
2232         (pass_lower_complex_O0): Rename from pass_lower_complex.
2233         (pass_lower_complex, gate_no_optimization): New.
2234         * tree-optimize.c (init_tree_optimization_passes): Update for
2235         complex pass changes.
2236         * tree-pass.h (pass_lower_complex_O0): Declare.
2237
2238 2005-06-08  Dale Johannesen  <dalej@apple.com>
2239
2240         * config/darwin.c (darwin_binds_local_p):  New.
2241         * config/darwin-protos.h (darwin_binds_local_p):  Declare it.
2242         * config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
2243         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
2244         (TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
2245
2246 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
2247
2248         * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2249         rs6000_isel, rs6000_spe, rs6000_alignment_string,
2250         rs6000_sched_restricted_insns_priority_str,
2251         rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2252
2253 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2254
2255         * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2256         instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2257         * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2258         multiplier_allowed_in_address_p, get_address_cost): Ditto.
2259
2260 2005-06-08  Richard Henderson  <rth@redhat.com>
2261
2262         * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2263         * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2264         Emit out3 load right after alloc.
2265
2266 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
2267
2268         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2269         rs6000_explicit_options.
2270
2271 2005-06-08  Richard Henderson  <rth@redhat.com>
2272
2273         * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2274         * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2275         unwind markup.
2276         * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2277
2278 2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
2279
2280         * config/sol2-c.c (cmn_err_char_table): Allow width for %b
2281         formats.
2282
2283 2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
2284
2285         PR target/20666
2286         * config/sparc/sparc.c (sparc_fold_builtin): New function
2287         (sparc_vis_mul8x16): New function.
2288         (sparc_handle_vis_mul8x16): New function.
2289         (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2290
2291 2005-06-08  David Edelsohn  <edelsohn@gnu.org>
2292
2293         * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2294         CTR to LR.
2295         (call_indirect_nonlocal_aix64): Same.
2296         (call_value_indirect_nonlocal_aix32): Same.
2297         (call_value_indirect_nonlocal_aix64): Same.
2298
2299         PR target/10588
2300         (eq): Use CLZ splitter for compare with zero.
2301
2302 2005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>
2303
2304         * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2305         everything larger than 8 bytes in memory.
2306
2307         * config/bfin/bfin.h (enum bfin_builtins): New.
2308         * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2309         New constants.
2310         (csync, ssync): New insn patterns.
2311         * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2312         New functions.
2313         (def_builtin): New macro.
2314         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2315
2316         From Jie Zhang  <jie.zhang@analog.com>
2317         * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2318         behavior of the native assembler in VDSP. So change accordingly.
2319         
2320 2005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>
2321
2322         * tree-data-ref.c (compute_estimated_nb_iterations,
2323         analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2324         analyze_subscript_affine_affine, find_data_references_in_loop):
2325         Fixed to use chrec_contains_undetermined to test the values of
2326         loop->estimated_nb_iterations.
2327         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2328         Compute the estimation only when loop->estimated_nb_iterations
2329         has not yet been initialized.
2330         (convert_step_widening, scev_probably_wraps_p): Add a call to
2331         estimate_numbers_of_iterations_loop.
2332         * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2333
2334 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2335
2336         PR debug/21946
2337         * dwarf2out.c (add_loc_descr_op_piece): Move to the
2338         DWARF2_DEBUGGING_INFO section.
2339
2340 2005-06-08  Richard Henderson  <rth@redhat.com>
2341
2342         PR target/21721
2343         * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2344
2345 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2346
2347         PR target/21889
2348         * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
2349         * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2350         (TARGET_ASM_OUT): Add it.
2351         * doc/tm.texi (Debugging Info): Document it.
2352         * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
2353         Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2354         (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
2355         * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2356         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2357         * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2358         (gen_inlined_tls_plt): Remove unused variable MEM.
2359         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2360         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2361         * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2362         * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2363         unused.
2364         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2365         * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2366         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2367         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2368         unused.
2369         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2370         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2371         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2372         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2373         unused.
2374         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2375         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2376         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2377         * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2378         unused.
2379         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2380         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2381         * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2382         (TARGET_GNU_TLS): Define to 1.
2383         * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2384         * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2385         unused.
2386         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2387         if TARGET_GNU_TLS only.
2388         * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2389
2390         * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2391         (sparc-*-solaris2*): Likewise on Solaris 7 and up.
2392
2393 2005-06-07  Dale Johannesen  <dalej@apple.com>
2394
2395         * config/i386/i386.md (movqi_1):  Fix case where source
2396         is memory and destination EDI.
2397
2398 2005-06-08  Kazu Hirata  <kazu@codesourcery.com>
2399
2400         * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2401
2402 2005-06-07  Eric Christopher  <echristo@redhat.com>
2403
2404         * system.h: Poison EXTRA_CC_MODES.
2405         * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2406         * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2407         * doc/md.texi (Jump Patterns): Replace reference to
2408         EXTRA_CC_MODES with machine-modes.def.
2409         * doc/rtl.texi (Machine Modes): Ditto.
2410
2411 2005-06-07  Richard Henderson  <rth@redhat.com>
2412
2413         * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2414         (assemble_start_function): Fix strcmp confusion.
2415
2416 2005-06-07  Uros Bizjak  <uros@kss-loka.si>
2417
2418         * config/i386/i386.h (enum ix86_entity): New.
2419         (enum ix86_stack_slot): New.
2420         (OPTIMIZE_MODE_SWITCHING): Redefine to use
2421         ix86_optimize_mode_switching[] array.
2422         (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2423         (MODE_NEEDED): Use ix86_mode_needed() function.
2424         (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2425         function.
2426         (struct machine_function): Use optimize_mode_switching[] array.
2427
2428         * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2429         (ix86_mode_needed): New function.
2430         (emit_i387_cw_initialization): Cleanup. Use mode to calculate
2431         correct stack positions for stored control words.
2432         (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2433         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2434         SLOT_TEMP.
2435         [IX86_BUILTIN_STMXCSR]: Same.
2436
2437         * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2438         (emit_i387_cw_initialization): Change prototype.
2439         (ix86_mode_needed): New prototype.
2440
2441         * config/i386/i386.md (i387_cw attribute): Change order of elements.
2442         (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2443         (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2444         (*fist<mode>2_ceil_1): Change constant in call to
2445         assign_386_stack_local to SLOT_TEMP.
2446         (*fix_trunc<mode>_i387_1): Change constant in call to
2447         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2448         Use new ix86_optimize_mode_switching[] array.
2449         (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2450         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2451         Use new ix86_optimize_mode_switching[] array.
2452         (frndintxf2_ceil, *fist<mode>2_ceil_1):  Change constants in call to
2453         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2454         Use new ix86_optimize_mode_switching[] array.
2455         (frndintxf2_trunc): Change constants in call to
2456         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2457         Use new ix86_optimize_mode_switching[] array.
2458         (frndintxf2_mask_pm): Change constants in call to
2459         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2460         Use new ix86_optimize_mode_switching[] array.
2461
2462         (define_peephole2): Change constant from 17 to FLAGS_REG;
2463
2464 2005-06-07  Richard Henderson  <rth@redhat.com>
2465
2466         PR rtl-opt/21528
2467         * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2468
2469 2005-06-07  Dale Johannesen  <dalej@apple.com>
2470
2471         * tree-nested.c (finalize_nesting_tree_1):  Disable
2472         warn_padded around layout_type call.
2473
2474 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2475
2476         * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2477         before emiting it.
2478
2479 2005-06-07  Eric Christopher  <echristo@redhat.com>
2480
2481         * config/mips/predicates.md: Revert previous patch.
2482
2483 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2484
2485         PR middle-end/21850
2486         * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2487         from vector types.
2488
2489 2005-06-07  Diego Novillo  <dnovillo@redhat.com>
2490
2491         * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2492         (thread_stats): New local variable.
2493         (redirect_edges): Increment count of threaded edges.
2494         (thread_through_all_blocks): Initialize thread_stats.
2495         Display number of threaded jumps if TDF_STATS is enabled.
2496
2497 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2498
2499         * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2500         the current bit index with no modulo.
2501
2502 2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
2503
2504         PR 18403 and meta PR 21861.
2505         * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2506         * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2507         (evolution_function_is_invariant_rec_p,
2508         evolution_function_is_invariant_p): New.
2509         (chrec_convert): Use an extra parameter AT_STMT for refining the
2510         information that is passed down to convert_step.  Integrate the 
2511         code that was in count_ev_in_wider_type.
2512         * tree-chrec.h (count_ev_in_wider_type): Removed.
2513         (chrec_convert): Modify its declaration.
2514         (evolution_function_is_invariant_p): Declared.
2515         (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2516         * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2517         (scev_probably_wraps_p): Declared.
2518         * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2519         (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2520         Use an extra parameter AT_STMT for refining the information that is
2521         passed down to convert_step.
2522         (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2523         analyze_scalar_evolution_1): Initialize AT_STMT with the current
2524         analyzed statement.
2525         (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2526         * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
2527         can_count_iv_in_wider_type to use convert_step.
2528         * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
2529         code that is independent of the loop over the known iteration
2530         bounds to convert_step_widening, the rest is moved to
2531         proved_non_wrapping_p.
2532         (scev_probably_wraps_p): New.
2533         (can_count_iv_in_wider_type): Renamed convert_step.
2534         * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2535         Use scev_probably_wraps_p for computing init_is_max.
2536         (vrp_visit_assignment): Pass the current analyzed statement to 
2537         adjust_range_with_scev.
2538         (execute_vrp): Call estimate_numbers_of_iterations for refining the 
2539         information provided by scev analyzer.
2540
2541 2005-06-07  Eric Christopher  <echristo@redhat.com>
2542
2543         * config/mips/predicates.md (sleu_operand): Use
2544         IN_RANGE to specify range of operand.
2545
2546 2005-06-07  Steven Bosscher  <stevenb@suse.de>
2547
2548         PR tree-optimization/21847
2549         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2550         -fnon-call-exceptions, also mark statements inherently
2551         necessary if they may throw.
2552
2553 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
2554
2555         * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2556         ("type"): Add "sem" to 'type' attribute.
2557         ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2558         "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2559         "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2560         "*sync_compare_and_swap_ccsi"): New patterns.
2561         * config/s390/2064.md: ("z_sem"): New insn_reservation.
2562         * config/s390/2084.md: ("x_sem"): New insn_reservation.
2563         * config/s390/s390.c: (s390_compare_emitted): New global variable.
2564         (s390_emit_compare): Do not emit comparison again after cas.
2565         * config/s390/s390.h (s390_compare_emitted): Declare.
2566
2567 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2568
2569         * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2570         sbitmap_iter_cond, sbitmap_iter_next): New.
2571         * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2572         modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2573         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2574         uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2575
2576 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2577
2578         * tree-ssa-address.c: New file.
2579         * Makefile.in (tree-ssa-address.o): Add.
2580         * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2581         INDIRECT_REFs.  Handle TARGET_MEM_REFs.
2582         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2583         * tree-flow.h (struct mem_address): New.
2584         (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2585         (create_mem_ref, addr_for_mem_ref, get_address_description,
2586         maybe_fold_tmr, multiplier_allowed_in_address_p,
2587         multiply_by_cost):  Declare.
2588         * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2589         * tree-pretty-print.c (dump_generic_node): Ditto.
2590         * tree-ssa-loop-im.c (for_each_index): Ditto.
2591         * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2592         find_interesting_uses_address): Ditto.
2593         (rewrite_address_base, build_addr_strip_iref): Removed.
2594         (struct affine_tree_combination): Moved to tree-flow.h.
2595         (get_ref_tag, copy_ref_info): New functions.
2596         (rewrite_use_address): Produce TARGET_MEM_REFs.
2597         (tree_ssa_iv_optimize): Do not call update_ssa
2598         and rewrite_into_loop_closed_ssa.
2599         (tree_to_aff_combination): Use build_fold_addr_expr instead of
2600         build_addr_strip_iref.
2601         (unshare_aff_combination): New function.
2602         (fold_affine_sum): Removed.
2603         (get_computation_at): Use get_computation_aff.  Unshare the result.
2604         (get_computation_aff, multiplier_allowed_in_address_p): New function.
2605         (multiply_by_cost): Exported.
2606         (get_address_cost): Use multiplier_allowed_in_address_p.
2607         * tree-ssa-operands.c (get_tmr_operands): New function.
2608         (get_expr_operands): Handle TARGET_MEM_REFs.
2609         * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2610         (build): Handle 7 arguments.
2611         (build7_stat): New function.
2612         * tree.def (TARGET_MEM_DEF): New.
2613         * tree.h (REF_ORIGINAL): Removed.
2614         (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2615         TMR_TAG, build7): New macros.
2616         (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2617         * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2618         * doc/c-tree.texi: Document TARGET_MEM_REF.
2619         * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2620
2621 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2622
2623         PR debug/21946
2624         * dwarf2out.c (add_loc_descr_op_piece): New function.
2625         (multiple_reg_loc_descriptor, concat_loc_descriptor,
2626         loc_descriptor): Use it.
2627         * var-tracking.c: Include regs.h and expr.h.
2628         (emit_note_insn_var_location): Skip over pieces where offset
2629         is smaller than previous offset plus previous piece mode size.
2630         Optimize adjacent hard registers or memory locations.
2631         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2632
2633 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2634
2635         * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2636         for COND_EXPR.
2637         * gimplify.c (gimplify_cond_expr): No need to fix up the
2638         type of COND_EXPRs.
2639
2640 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2641
2642         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2643         comments.
2644
2645 2005-06-07  Geoffrey Keating  <geoffk@apple.com>
2646
2647         * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2648         'stwux' instructions that are considered to be stack decrements.
2649
2650         * rtlanal.c (subreg_offset_representable_p): Handle objects
2651         with holes.
2652
2653 2005-06-06  Uros Bizjak  <uros@kss-loka.si>
2654
2655         * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2656         in call to pre_edge_lcm.
2657
2658 2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
2659
2660         * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2661         (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2662         (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2663         Likewise.
2664         (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2665         dwarf register number for SHmedia.
2666         (shmedia_fallback_frame_state): New.
2667         (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2668
2669         * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2670
2671 2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2672
2673         * c-lex.c (lex_string): Use XOBFINISH.
2674         * collect2.c (extract_string, dump_file): Likewise.
2675         * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2676         * gcc.c (init_spec, build_search_list, convert_filename, 
2677         set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2678         * genpreds.c (write_predicate_subfunction): Likewise.
2679         * genflags.c (main): Likewise.
2680         * read-rtl.c (mode_attr_index, apply_macro_to_string, 
2681         join_c_conditions, read_quoted_string, read_braced_string, 
2682         read_rtx_1): Likewise.
2683         * stringpool.c (ggc_alloc_string): Likewise.
2684         * tlink.c (obstack_fgets, recompile_files): Likewise.
2685
2686 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2687
2688         * intl.h (G_): New macro.
2689         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2690         instead of msgid for argument name.
2691         * tree-ssa.c (warn_uninit): Likewise.
2692         * c-parser.c (c_parser_error): Likewise.
2693         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2694         * config/darwin-c.c (BAD): Likewise.
2695         * config/c4x/c4x-c.c (BAD): Likewise.
2696         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2697         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2698         * c-common.c (c_parse_error): Likewise.
2699         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2700         warning0, pedwarn, error, sorry, fatal_error, internal_error):
2701         Likewise.
2702         (fnotice): Use cmsgid instead of msgid for argument name.
2703         * gcov.c (fnotice): Likewise.
2704         * protoize.c (notice): Likewise.
2705         * final.c (output_operand_lossage): Likewise.
2706         * gcc.c (fatal, notice): Likewise.
2707         (error): Use gmsgid instead of msgid for argument name.
2708         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2709         of msgid for argument name.
2710         (error): Use gmsgid instead of msgid for argument name.
2711         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2712         instead of N_().
2713         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2714         * tree-inline.c (inline_forbidden_p_1): Likewise.
2715         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
2716         conventions for marking translations.
2717         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2718
2719         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2720         build2.
2721
2722         * fold-const.c (operand_equal_p): Don't return 1, if element
2723         chains for 2 VECTOR_CSTs are not the same length.
2724
2725         PR regression/21897
2726         * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
2727         not all VECTOR_CST elements are given.
2728
2729         * combine.c (try_combine): Use hard_regno_nregs array instead of
2730         HARD_REGNO_NREGS macro.
2731         * config/rs6000/rs6000.c (rs6000_split_multireg_move,
2732         rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2733         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2734
2735 2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
2736
2737         * tree-ssa-reassoc.o: New.
2738         (OBJS-common): Add tree-ssa-reassoc.o
2739         * timevar.def: Add TV_TREE_REASSOC
2740         * tree-optimize.c (pass_reassoc): Add call.
2741         * tree-pass.h (pass_reassoc): Add.
2742         * tree-ssa-reassoc.c: New file.
2743
2744 2005-06-06  Eric Christopher  <echristo@redhat.com>
2745
2746         target/21927
2747         * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2748
2749 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2750
2751         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2752         HAVE_GAS_MAX_SKIP_P2ALIGN.
2753         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2754
2755 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2756
2757         * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2758         getopt.h dependency.
2759         (mips-tdump.o): Likewise.
2760
2761 2005-06-06  Jan Hubicka  <jh@suse.cz>
2762
2763         * predict.c (tree_predict_edge): Don't drop useless predictions;
2764         check that it is not called too late in the game.
2765         (gate_estimate_probability): New gate.
2766         (pass_profile): Gate.
2767         * tree-mudflap.c (mf_build_check_statement_for): Do not drop
2768         predictions; update CFG instead.
2769         * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2770
2771 2005-06-06  Jie Zhang  <jie.zhang@analog.com>
2772
2773         * config.gcc (bfin*-uclinux*): New.
2774         * config/bfin/uclinux.h: New file.
2775
2776 2005-06-06  Ben Elliston  <bje@au.ibm.com>
2777
2778         * doc/md.texi (Insn Splitting): Fix some wording.
2779
2780 2005-06-05  David Edelsohn  <edelsohn@gnu.org>
2781
2782         * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2783         (rs6000_emit_swdivdf): New function.
2784         * config/rs6000/rs6000.md (fres): New pattern.
2785         (divsf3): Add approximation through rs6000_emit_swdivsf.
2786         (fred): New pattern.
2787         (divdf3): Add approximation through rs6000_emit_swdivdf.
2788         * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2789         (rs6000_emit_swdivdf): Declare.
2790         * config/rs6000/rs6000.opt (mswdiv): New option.
2791         * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2792
2793 2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
2794
2795         PR tree-optimization/21846
2796         * tree-cfg.c (replace_uses_by): Update information stored at loops.
2797         * tree-flow.h (substitute_in_loop_info): Declare.
2798         * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2799         Ensure that chrec_dont_know and chrec_known have a type.
2800         * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2801
2802 2005-06-05  Steven Bosscher  <stevenb@suse.de>
2803
2804         * config/i386/i386.c (x86_use_loop): Remove.
2805         * config/i386/i386.h (x86_use_loop): Remove extern decl.
2806         (TARGET_USE_LOOP): Remove.
2807         * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2808         Also remove related define_splits.
2809
2810 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
2811
2812         * tree-flow.h (stmt_ann_d): Move aux to ...
2813         (tree_ann_common_d): ... here.
2814         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2815         move_computations_stmt, schedule_sm): Update references to
2816         aux.
2817         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2818         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2819         call to set_stmt_info.
2820         (vect_transform_loop): Likewise.
2821         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2822         Likewise.
2823
2824         * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2825         bool.
2826         (vect_mark_relevant): Takes two additional arguments - live_p and
2827         relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2828         (vect_stmt_relevant_p): Differentiate between a live stmt and a
2829         relevant stmt. Return two values = live_p and relevant_p.
2830         (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2831         vect_stmt_relevant_p with additional arguments. Phis are no longer
2832         put into the worklist (analyzed seperately in analyze_scalar_cycles).
2833         (vect_determine_vectorization_factor): Also check for LIVE_P, because a
2834         stmt that is marked as irrelevant and live, cause it's only used out
2835         side the loop, may need to be vectorized (e.g. reduction).
2836         (vect_analyze_operations): Examine phis. Call
2837         vectorizable_live_operation for for LIVE_P stmts. Check if
2838         need_to_vectorize.
2839         (vect_analyze_scalar_cycles): Update documentation. Don't fail
2840         vectorization - just classify the scalar cycles created by the loop
2841         phis. Call vect_is_simple_reduction.
2842         (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2843         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2844         call to set_stmt_info.
2845         (vect_get_vec_def_for_operand): Code reorganized - the code that
2846         classifies the type of use was factored out to vect_is_simple_use.
2847         (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2848         additional arguments.
2849         (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2850         and computes a loop_vec_def.
2851         (vectorizable_operation, vectorizable_load, vectorizable_condition):
2852         Likewise.
2853         (vectorizable_live_operation): New.
2854         (vect_transform_stmt): Handle LIVE_P stmts.
2855         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2856         STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2857         (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2858         (vect_is_simple_use): Determine the type of the def and return it
2859         in a new function argument. Consider vect_reduction_def and
2860         vect_induction_def, but for now these are not supported.
2861         (vect_is_simple_reduction): New. Empty for now.
2862         * tree-vectorizer.h (vect_def_type): New enum type.
2863         (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2864         (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2865         (vect_is_simple_use): New arguments added to function declaration.
2866         (vect_is_simple_reduction): New function declaration.
2867         (vectorizable_live_operation): New function declaration.
2868
2869         * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2870         (vect_can_advance_ivs_p): Likewise.
2871         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2872
2873 2005-06-05  Eric Christopher  <echristo@redhat.com>
2874
2875         * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2876
2877 2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
2878
2879         PR target/21914
2880         * config/mmix/mmix.md ("*movdicc_real_foldable")
2881         ("*movdfcc_real_foldable", "*bCC_foldable")
2882         ("*bCC_inverted_foldable"): Specify DImode for register being
2883         compared.
2884
2885 2005-06-04  Roger Sayle  <roger@eyesopen.com>
2886
2887         * reg-stack.c (struct block_info_def): Correct grammar typo.
2888         (compensate_edge): Clean-up.  Perform as little work as possible
2889         when src and dest stacks match.  Avoid modifying block_info.
2890         Reorder and simplify assertion checks.  Avoid unnecessary copying
2891         of regstack structure.
2892         (convert_regs_1): Set the done flag here...
2893         (convert_regs_2): ... instead of here.
2894
2895 2005-06-04  Dale Johannesen  <dalej@apple.com>
2896
2897         * config/rs6000/rs6000.c (no_global_regs_above): New.
2898         (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
2899         (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
2900         (rs6000_conditional_register_usage): Don't put Darwin PIC
2901         register in global_regs.
2902         (rs6000_stack_info):  Don't set lr_save_p just because Darwin 
2903         PIC reg used.
2904         (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
2905         if not done by lr_save_p.
2906         * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
2907         Use rotate instead of ashift.
2908         (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
2909         (call_value_indirect_nonlocal_sysv):  Ditto.
2910
2911 2005-06-04  Jan Hubicka  <jh@suse.cz>
2912
2913         * cgraphunit.c (cgraph_reset_node): Break out from ...
2914         (cgraph_finalize_function): ... here.
2915         (cgraph_finalize_compilation_unit): Reset nodes where backend
2916         removed the body.
2917
2918 2005-06-04  Richard Henderson  <rth@redhat.com>
2919
2920         PR target/21888
2921         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2922         until we've passed initial ldgp.
2923
2924 2005-06-04  Daniel Berlin  <dberlin@dberlin.org>
2925
2926         * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2927         * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2928         * expr.c (expand_var): Ditto.   
2929         * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2930         * gimplify.c (gimplify_decl_expr): Ditto.
2931         (gimplify_expr): Ditto.
2932         * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2933         * tree.c (value_expr_for_decl): New.
2934         (print_value_expr_statistics): New.
2935         (init_ttree): Init value_expr_for_decl.
2936         (decl_value_expr_lookup): New.
2937         (decl_value_expr_insert): Ditto.
2938         (copy_node_stat): Copy DECL_VALUE_EXPR status.
2939         * tree.h (DECL_VALUE_EXPR): Use hashtable.
2940         (SET_DECL_VALUE_EXPR): New.
2941         (DECL_HAS_VALUE_EXPR_P): New.
2942
2943 2005-06-04  Steven Bosscher  <stevenb@suse.de>
2944
2945         * lcm.c: Move all mode-switching related functions from here...
2946         * mode-switching.c: ...to this new file.
2947         * doc/passes.texi: Update accordingly.
2948
2949         * basic-block.h (label_value_list): Remove extern decl.
2950         * cfgrtl.c (label_value_list): Remove.
2951         (can_delete_label_p): Don't look at it.
2952         * cfgcleanup.c (cleanup_cfg): Don't free it.
2953
2954         * common.opt: Don't refer to non-existing flag_alias_check.
2955
2956 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
2957
2958         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2959
2960 2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
2961
2962         * function.c (prologue, epilogue, sibcall_epilogue): Change
2963         their types to VEC(int,heap)*.
2964         (free_after_compilation): Free the three vectors above.
2965         (init_function_for_compilation, record_insns, contains,
2966         prologue_epilogue_contains, sibcall_epilogue_contains,
2967         reposition_prologue_and_epilogue_notes): Use VEC instead of
2968         VARRAY.  (init_function_once): Remove.
2969         * function.h: Remove the prototype for init_function_once.
2970         * toplev.c (backend_init): Don't call init_function_once.
2971
2972 2005-06-04  Jan Hubicka  <jh@suse.cz>
2973
2974         * predict.c (tree_predict_edge): Do not predict entry edge and
2975         single succestor edge.
2976
2977 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
2978
2979         PR c/21873
2980         * c-typeck.c (push_init_level): Don't pop levels without braces if
2981         implicit == 1.
2982
2983 2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
2984         
2985         * tree-data-ref.c (compute_self_dependence): New function.
2986         (compute_all_dependences): Use it.
2987
2988 2005-06-03  Geoffrey Keating  <geoffk@apple.com>
2989
2990         * c-parser.c (c_parser_parms_declarator): Don't use chainon().
2991         (c_parser_expr_list): Don't use chainon().
2992
2993         * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
2994         when -isysroot passed.
2995
2996 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
2997
2998         PR c/21879
2999         * c-decl.c (start_function): Restore label_context_stack_se and
3000         label_context_stack_vm  if returning with an error.
3001
3002 2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3003
3004         * configure.ac: Check declaration for asprintf, needed by
3005         libiberty.h. 
3006         * configure: Regenerate.
3007         * config.in: Likewise.
3008
3009 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
3010
3011         * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3012         allocate info array.
3013         * tree-vrp.c (extract_range_from_unary_expr): Set resulting
3014         range to varying in cast expressions that change
3015         TYPE_PRECISION.
3016
3017 2005-06-03  Eric Christopher  <echristo@redhat.com>
3018
3019         * config/mips/mips.opt: Add RejectNegative to divide-breaks and
3020         divide-traps.
3021
3022 2005-06-03  Jan Hubicka  <jh@suse.cz>
3023
3024         * basic-block.h (remove_predictions_associated_with_edge): Declare.
3025         * cfg.c (remove_edge): Use it.
3026         * predict.c (remove_predictions_associated_with_edge): New function.
3027
3028 2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
3029
3030         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3031         Clear call_realy_used_regs[r2] when ABI_AIX.
3032
3033 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
3034
3035         PR middle-end/21858
3036         * fold-const.c (fold_binary): Fix type mismatches in folding
3037         of comparisons.
3038
3039 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
3040
3041         * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3042         typos.
3043
3044 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
3045
3046         * collect2.c (maybe_unlink): Use unlink_if_ordinary.
3047
3048 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
3049
3050         * reload1.c (reload): Revert my previous patch.
3051
3052 2005-06-03  Nick Clifton  <nickc@redhat.com>
3053
3054         * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3055         assembler.
3056
3057 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
3058
3059         PR tree-optimization/21849
3060         * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3061
3062 2005-06-02  Richard Henderson  <rth@redhat.com>
3063
3064         * Makefile.in (tree-vect-generic.o): New.
3065         (OBJS-common, GTFILES, s-gtype): Add it.
3066         * tree-complex.c (build_replicated_const, vector_inner_type,
3067         vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3068         elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3069         do_negate, expand_vector_piecewise, expand_vector_parallel, 
3070         expand_vector_addition, expand_vector_operation, 
3071         type_for_widest_vector_mode, expand_vector_operations_1, 
3072         gate_expand_vector_operations, expand_vector_operations, 
3073         pass_lower_vector_ssa): Move to tree-vect-generic.c.
3074         (tree_lower_complex): Rename from tree_lower_operations.
3075         (pass_lower_complex): Rename from pass_pre_expand.
3076         * tree-vect-generic.c: New file.
3077         * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3078         (pass_lower_vector): New.
3079         * tree-optimize.c (init_tree_optimization_passes): Update to match.
3080
3081 2005-06-02  Richard Henderson  <rth@redhat.com>
3082
3083         * modulo-sched.c (doloop_register_get): Protect against 
3084         doloop_end not defined.
3085
3086 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3087
3088         * config/sh/sh.c (general_movsrc_operand,
3089         general_movdst_operand, arith_reg_operand, arith_reg_dest,
3090         logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3091         fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3092         xor_operand, cmp_operand, logical_operand, and_operand,
3093         fpscr_operand, fpul_operand, symbol_ref_operand,
3094         commutative_float_operator, noncommutative_float_operator,
3095         unary_float_operator, binary_float_operator,
3096         binary_logical_operator, equality_comparison_operator,
3097         greater_comparison_operator, less_comparison_operator,
3098         shift_operator, logical_operator, target_reg_operand,
3099         target_operand, mextr_bit_offset, extend_reg_operand,
3100         trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3101         general_extend_operand, ua_address_operand,
3102         cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3103         sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3104         shift_count_reg_operand, shift_count_operand,
3105         unaligned_load_operand): Move to ...
3106         * config/sh/predicates.md: ... here.
3107         * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3108         Remove.
3109
3110 2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
3111
3112         * tree.c (build_common_builtin_nodes): Fix the return type on
3113         __builtin_memcmp.
3114
3115 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3116
3117         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
3118         (find_interesting_uses_address): Use build_fold_addr_expr instead.
3119         (strip_offset_1): Likewise.
3120         (tree_to_aff_combination): Likewise.
3121
3122 2005-06-02  DJ Delorie  <dj@redhat.com>
3123
3124         * convert.c (convert_to_pointer): Avoid recursion if no conversion
3125         is needed.
3126
3127 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3128
3129         * tree-chrec.c (chrec_fold_plus_1): Ensure we build
3130         binary operations with the correct types.
3131         * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
3132         for all computation.
3133
3134 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3135
3136         * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
3137         config/rs6000/rs6000.md: Fix comment typos.  Follow splling
3138         conventions.
3139         * doc/install.texi: Fix a typo.
3140
3141 2005-06-02  Jan Hubicka  <jh@suse.cz>
3142
3143         * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
3144         inline functions are not local.
3145
3146 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3147
3148         * gimplify.c (gimplify_ctx): Change the type of case_labels to
3149         VEC from VARRAY.
3150         (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
3151         of case_labels.
3152
3153 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3154
3155         * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
3156         with correct type.
3157
3158 2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
3159
3160         * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
3161         execute templates.
3162         (s390_dump_pool): Likewise.
3163         (s390_mainpool_start, s390_mainpool_finish): Likewise.
3164         (s390_chunkify_start): Likewise.
3165         (s390_dump_execute): Remove.
3166         (s390_reorg): Handle out-of-pool execute templates.
3167
3168 2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
3169
3170         * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
3171           unconditional jump.
3172
3173 2005-06-02  Jan Hubicka  <jh@suse.cz>
3174
3175         * cgraph.c (cgraph_node): Maintain master clones.
3176         (cgraph_remove_node): Likewise.
3177         (availability_names): New static variable.
3178         (dump_cgraph_node): Dump availability.
3179         (dump_cgraph_varpool_node): Likewise.
3180         (cgraph_is_master_clone, cgraph_master_clone,
3181         cgraph_function_body_availability,
3182         cgraph_variable_initializer_availability): New functions.
3183         * cgraph.h (availability): New enum.
3184         (struct cgraph_node): Add master_clone.
3185         (cgraph_is_master_clone, cgraph_master_clone,
3186         cgraph_function_body_availability,
3187         cgraph_variable_initializer_availability): Declare.
3188         * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
3189         (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
3190         * ipa-inline.c (cgraph_decide_inlining): Do not call
3191         cgraph_remove_unreachable_nodes.
3192
3193         * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
3194         previous patch.
3195
3196 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
3197
3198         PR 21582
3199         * tree-vrp.c (nonnull_arg_p): New.
3200         (get_value_range): Call it.
3201
3202 2005-06-02  Eric Christopher  <echristo@redhat.com>
3203
3204         * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
3205         add PROCESSOR_MAX.
3206         (mips_rtx_cost_data): New datatype.
3207         (MEMORY_MOVE_COST): Use data from structure.
3208         (BRANCH_COST): Ditto.
3209         (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
3210         * config/mips/mips.md (cpu): Rework for processor_type changes.
3211         * config/mips/mips.c (mips_cost): New variable.
3212         (DEFAULT_COSTS): Define.
3213         (mips_rtx_cost_data): New.
3214         (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
3215         for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
3216         FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
3217         (override_options): Set cost data.
3218         (mips_register_move_cost): Formatting changes.
3219         (bdesc_arrays): Use PROCESSOR_MAX.
3220         (mips_init_builtins): Ditto.
3221
3222 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
3223
3224         PR 21765
3225         * doc/invoke.texi: Document -ftree-vrp.
3226
3227 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
3228
3229         PR tree-optimization/21734
3230         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
3231         phi_result when current_def is not available.
3232         (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
3233         available.      
3234
3235 2005-06-02  David Edelsohn  <edelsohn@gnu.org>
3236
3237         * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
3238         (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
3239
3240 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
3241
3242         * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
3243
3244 2005-06-02  Jan Hubicka  <jh@suse.cz>
3245
3246         * cgraph.c (dump_cgraph_node): Print new flags.
3247         (dump_cgraph_varpool_node): Likewise.
3248         (decide_variable_is_needed): Initialize externally_visible flag.
3249         * cgraph.h (cgraph_local_info): Add externally_visible flag.
3250         (cgraph_varpool_node): Likewise.
3251         (cgraph_function_flags_ready): Declare.
3252         * cgraph.c (cgraph_mark_local_functions): Rename to ...
3253         (cgraph_function_and_variable_visibility) ... this one; handle
3254         externally_visible flags.
3255         (decide_is_function_needed): Set externally_visible flag.
3256         (cgraph_finalize_function): Deal properly with early cleanups.
3257         (cgraph_optimize): Update call of
3258         cgraph_function_and_variable_visibility.
3259
3260 2005-06-02 Steven Bosscher  <stevenb@suse.de>
3261            Mostafa Hagog <mustafa@il.ibm.com>
3262
3263         * cfgloop.h (doloop_condition_get): Make external.
3264         * loop-doloop.c (doloop_condition_get): Generalize to make it
3265         usable in modulo-sched.c.
3266         * modulo-sched.c (doloop_register_get): Use
3267         doloop_condition_get instead of duplicating it.
3268
3269 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
3270
3271         * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
3272         the correct set of init_insns that need deletion.
3273         * local-alloc.c (update_equiv_regs): When substituting sole definition
3274         into sole use of a reg, delete it from liveness information.
3275
3276 2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3277
3278         * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
3279
3280 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
3281
3282         PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
3283         PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
3284         * fold-const.c (invert_tree_comparison): Make extern.
3285         * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
3286         (struct value_range_def): Limewise.
3287         (get_value_range): Remove.
3288         (dump_value_range): Remove.
3289         (dump_all_value_ranges): Remove.
3290         (debug_all_value_ranges): Remove.
3291         (vrp_evaluate_conditional): Declare.
3292         * tree-ssa-propagate.c (struct prop_stats_d): Add field
3293         num_pred_folded.
3294         (substitute_and_fold): Add argument use_ranges_p.
3295         Update all callers.
3296         If use_ranges_p is true, call fold_predicate_in to fold
3297         predicates using range information.
3298         Ignore ASSERT_EXPRs.
3299         Change debugging output to only show statements that have been
3300         folded.
3301         (replace_phi_args_in): Move debugging output code from
3302         substitute and fold.
3303         (fold_predicate_in): New local function.
3304         * tree-ssa-propagate.h (enum value_range_type): Move from
3305         tree-flow.h.
3306         (struct value_range_d): Likewise.
3307         Add field 'equiv'. 
3308         (value_range_t): Rename from value_range.
3309         * tree-vrp.c (found_in_subgraph): Rename from found.
3310         (get_opposite_operand): Remove.
3311         (struct assert_locus_d): Declare.
3312         (assert_locus_t): Declare.
3313         (need_assert_for): Declare.
3314         (asserts_for): Declare.
3315         (blocks_visited): Declare.
3316         (vr_value): Declare.
3317         (set_value_range): Add argument 'equiv'.
3318         Don't drop to VARYING ranges that cover all values in the
3319         type.
3320         Make deep copy of equivalence set 'equiv'.
3321         (copy_value_range): New local function.
3322         (set_value_range_to_undefined): New local function.
3323         (compare_values): Return -2 if either value has overflowed.
3324         (range_includes_zero_p): New local function.
3325         (extract_range_from_assert): Flip the predicate code if the
3326         name being asserted is on the RHS of the predicate.
3327         Avoid creating unnecessary symbolic ranges if the comparison
3328         includes another name with a known numeric range.
3329         Update the equivalnce set of the new range when asserting
3330         EQ_EXPR predicates.
3331         (extract_range_from_ssa_name): Update the equivalence set of
3332         the new range with VAR.
3333         (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
3334         If -fwrapv is used, set the resulting range to VARYING if the
3335         operation overflows.  Otherwise, use TYPE_MIN_VALUE and
3336         TYPE_MAX_VALUE to represent -INF and +INF.
3337         Fix handling of *_DIV_EXPR.
3338         (extract_range_from_unary_expr): Handle MINUS_EXPR and
3339         ABS_EXPR properly by switching the range around if necessary.
3340         (extract_range_from_comparison): New local function.
3341         (extract_range_from_expr): Call it.
3342         (adjust_range_with_scev): Do not adjust the range if using
3343         wrapping arithmetic (-fwrapv).
3344         (dump_value_range): Also show equivalence set.
3345         Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
3346         (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
3347         (infer_value_range): Change return value to bool.
3348         Add arguments 'comp_code_p' and 'val_p'.
3349         Do not attempt to infer ranges from statements that may throw.
3350         Store the comparison code in comp_code_p.
3351         Store the other operand to be used in the predicate in val_p.
3352         (dump_asserts_for): New.
3353