OSDN Git Service

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