OSDN Git Service

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