OSDN Git Service

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