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