+2005-07-01 James E. Wilson <wilson@specifixinc.com>
+
+ * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
+
+2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/22269
+ * tree-ssa-reassoc.c (should_transpose): Fix which operand
+ we check for SSA_NAME for.
+
+2005-06-29 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/22071
+
+ * tree-ssa-structalias.c (offset_overlaps_with_access): New
+ function.
+ (get_constraint_for_component_ref): Use it.
+
+2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR other/22264
+ * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
+ print out the last new line.
+
+2005-07-01 Hans-Peter Nilsson <hp@axis.se>
+
+ * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
+ Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
+ * config/cris/cris.c (cris_conditional_register_usage): Adjust
+ reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
+ (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
+ (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
+ * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
+ (enum reg_class): New member CC0_REGS.
+ (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
+ (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
+ (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
+ (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
+ (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
+ Adjust for register now described.
+
+2005-07-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/22262
+ * config/i386/i386.md (stack_protect_test_si,
+ stack_protect_test_di): Add earlyclobber for scratch 3.
+ * config/rs6000/rs6000.md (stack_protect_testsi,
+ stack_protect_testdi): Add earlyclobber for scratch 3,
+ remove earlyclobber from scratch 4.
+
+2005-06-30 Diego Novillo <dnovillo@redhat.com>
+
+ PR 21584
+ PR 22219
+ * tree-ssa-alias.c (create_name_tags): Also process
+ non-dereferenced pointers.
+ Remove argument 'ai'. Update all callers.
+
+2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
+ Set to 0 for FRAME_GROWS_DOWNWARD.
+ (REGISTER_NAMES): Add sfp.
+
+2005-07-01 Kelley Cook <kcook@gcc.gnu.org>
+
+ * config/arm/libunwind.S, config/arm/pr-support.c,
+ config/arm/unwind-arm.c, config/arm/unwind-arm.h,
+ config/c4x/predicates.md, tree-object-size.c: Update FSF address.
+
+2005-06-30 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR target/22260
+ * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
+ Preserve the 2nd register too, if present.
+ (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
+ Adjust call to emit_and_preserve.
+
+2005-06-30 Zack Weinberg <zack@codesourcery.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * pretty-print.h (PP_NL_ARGMAX): New.
+ (text_info): Add locus.
+ (struct chunk_info): New.
+ (output_buffer): Add formatted_obstack, chunk_obstack, and
+ cur_chunk_array. Change obstack to a pointer.
+ (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
+ (struct pretty_print_info): Replace ideal_maximum_length and
+ prefixing_rule with wrapping.
+ (pp_line_cutoff, pp_prefixing_rule): Update to match.
+ Update prototypes and wrapper macros throughout.
+ * pretty-print.c (pp_formatted_text_data, pp_append_r)
+ (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
+ (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
+ Update for changes to pp structure.
+ (pp_base_prepare_to_format, pp_base_format_text): Delete.
+ (pp_base_format, pp_base_output_formatted_text): New functions.
+ (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
+ (pp_verbatim): Clear text.locus.
+ (pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
+ * c-objc-common.c (c_tree_printer): Update function signature.
+ * diagnostic.c (diagnostic_initialize): Update for changes to
+ pp structure.
+ (diagnostic_report_diagnostic): Call pp_format and then
+ pp_output_formatted_text.
+ (verbatim): Clear text.locus.
+ * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
+ Update for changes to pp structure.
+
+ * c-lang.c: No need to include c-pretty-print.h.
+ * Makefile.in: Remove bogus line containing only a tab.
+ (c-lang.o): Update dependencies.
+ * toplev.c (announce_function): Don't use verbatim.
+ (default_tree_printer): Update signature.
+
+ * objc/objc-lang.c: No need to include c-pretty-print.h.
+ * objc/Make-lang.in: Update dependencies.
+
+2005-06-29 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-complex.c (complex_variable_components): Now a hashtable.
+ (cvc_lookup): Ditto.
+ (cvc_insert): Ditto.
+ (create_components): Use referenced var iterator.
+ Initialize hashtable. Use cvc_insert/lookup.
+ (extract_components): Use cvc_insert/lookup.
+ (update_complex_components): Ditto.
+ (update_complex_components_on_edge): Ditto.
+ * tree-dfa.c (referenced_vars): Now a hashtable.
+ (dump_referenced_vars): Use iterator.
+ (referenced_var_lookup): New function.
+ (referenced_var_insert): Ditto.
+ (add_referenced_var): Use referenced_var_insert.
+ (mark_new_vars_to_rename): Use DECL_UID.
+ * tree-flow-inline.h (first_htab_element): New function.
+ (end_htab_p): Ditto.
+ (next_htab_element): Ditto.
+ (first_referenced_var): Ditto.
+ (end_referenced_vars_p): Ditto.
+ (next_referenced_var): Ditto.
+ (is_call_clobbered): Use DECL_UID.
+ (mark_call_clobbered): Ditto.
+ (clear_call_clobbered): Ditto.
+ (mark_non_addressable): Ditto.
+ * tree-flow.h (htab_iterator): New struct.
+ (FOR_EACH_HTAB_ELEMENT): New macro.
+ (struct int_tree_map): New struct.
+ (int_tree_map_hash): Prototype.
+ (int_tree_map_eq): Ditto.
+ (referenced_var_iterator): Ditto.
+ (FOR_EACH_REFERENCED_VAR): New macro.
+ (referenced_vars): Now a hashtable.
+ * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
+ (add_new_name_mapping): Ditto.
+ (mark_def_sites): Ditto.
+ (insert_phi_nodes): Use referenced_var iterator.
+ (mark_def_site_blocks): Ditto.
+ (mark_sym_for_renaming): Use DECL_UID.
+ * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
+ (lookup_element): Ditto.
+ (find_candidates_for_sra): Use referenced_vars iterator.
+ Use DECL_UID.
+ * tree-ssa-alias.c (NUM_REFERENCES): New macro.
+ (NUM_REFERENCES_CLEAR): Ditto.
+ (NUM_REFERENCES_INC): Ditto.
+ (NUM_REFERENCES_SET): Ditto.
+ (alias_obstack): New bitmap obstack.
+ (struct alias_map_d): Use bitmap, not sbitmap.
+ (struct alias_info): Remove num_references.
+ (init_alias_info): Use referenced_var iterator.
+ Initialize bitmap obstack.
+ (delete_alias_info): Use referenced_var iterator.
+ Free bitmap obstack.
+ (compute_points_to_and_addr_escape): Use DECL_UID.
+ Use new NUM_REFERENCES macros.
+ (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
+ Use new NUM_REFERENCES macros.
+ (group_aliases_into): Update prototype to use bitmap.
+ (setup_pointers_and_addressables): Use referenced_vars iterator.
+ Use DECL_UID. Use new NUM_REFERENCES macros.
+ (add_pointed_to_var): Use DECL_UID.
+ (dump_alias_info): Use referenced_var iterator.
+ (add_type_alias): Ditto.
+ (used_portions): Now a hashtable.
+ (used_part_map_eq): New function.
+ (used_part_map_hash): Ditto.
+ (free_used_part_map): Ditto.
+ (up_lookup): Ditto.
+ (up_insert): Ditto.
+ (get_or_create_used_part_for): Use up_lookup.
+ (create_overlap_variables_for): Ditto.
+ (find_used_portions): Use up_insert.
+ Use DECL_UID.
+ (create_structure_vars): Init used_portions hashtable, use
+ referenced_vars iterator.
+ * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
+ Use DECL_UID.
+ * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
+ * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
+ (note_addressable): Ditto.
+ * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Use
+ referenced_var iterator.
+ Use DECL_UID.
+ (delete_tree_ssa): Ditto.
+ (int_tree_map_eq): New function.
+ (int_tree_map_hash): Ditto.
+ * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
+ (va_list_ptr_read): Ditto.
+ (va_list_counter_struct_op): Ditto.
+ (va_list_ptr_write): Ditto.
+ (check_va_list_escapes): Ditto.
+ (check_all_va_list_escapes): Ditto.
+ (execute_optimize_stdarg): Ditto.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
+ iterator.
+
+2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
+ (HARD_FRAME_POINTER_REGNUM): this.
+
+2005-06-30 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
+
+2005-06-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ PR middle-end/22247
+ * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
+ process_unification_queue, init_topo_info, topo_visit,
+ init_scc_info, free_scc_info, perform_var_substitution,
+ solve_graph): Use unsigned instead of uint.
+
+2005-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ * function.c (gen_stack_protect_test): Add third argument.
+
+2005-06-30 J. D. Johnston <jjohnst@us.ibm.com>
+
+ * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
+
+2005-06-30 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/c4x/c4x-protos.h: Remove the prototypes for those
+ functions removed from c4x.c. Add prototypes for those
+ functions exported in c4x.c.
+ * config/c4x/c4x.c (any_operand, fp_zero_operand,
+ const_operand, stik_const_operand, not_const_operand,
+ reg_operand, r0r1_reg_operand, r2r3_reg_operand,
+ ext_low_reg_operand, ext_reg_operand, std_reg_operand,
+ std_or_reg_operand, addr_reg_operand, index_reg_operand,
+ dp_reg_operand, sp_reg_operand, st_reg_operand,
+ rc_reg_operand, call_address_operand,
+ symbolic_address_operand, dst_operand, src_operand,
+ src_hi_operand, lsrc_operand, tsrc_operand,
+ nonimmediate_src_operand, nonimmediate_lsrc_operand,
+ reg_or_const_operand, par_ind_operand, parallel_operand):
+ Remove.
+ (c4x_immed_float_p, c4x_a_register, c4x_x_register,
+ c4x_K_constant, c4x_N_constant, c4x_O_constant,
+ c4x_S_indirect): Export.
+ * config/c4x/c4x.h (PREDICATE_CODES): Remove.
+ * config/c4x/c4x.md: Include predicates.md.
+ * config/c4x/predicates.md: New.
+
+2005-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ * function.c (stack_protect_epilogue): Pass label to
+ stack_protect_test, assume it emitted also the conditional
+ branch.
+ * doc/md.texi (stack_protect_test): Adjust documentation.
+ * config/i386/i386.md (stack_protect_test): Add third argument,
+ emit beq with operands[2].
+ * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
+ flag_stack_protect != 0.
+ * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
+ constants.
+ (stack_protect_set, stack_protect_test): New expanders.
+ (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
+ stack_protect_testdi): New insns.
+ * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
+ (TARGET_STACK_PROTECT_FAIL): Define.
+ (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
+
+ * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
+ (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
+ that addition of sfp doesn't change these.
+ (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
+ REG_ALLOC_ORDER): Add sfp.
+ (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
+ (FRAME_POINTER_REGNUM): Define to 113.
+ (HARD_FRAME_POINTER_REGNUM): Define to 31.
+ (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
+ (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
+ (ELIMINABLE_REGS): Never eliminate to
+ FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
+ instead. Add eliminations from FRAME_POINTER_REGNUM.
+ (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
+ Include FRAME_POINTER_REGNUM.
+ (REGISTER_NAMES): Add sfp.
+ * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
+ (alt_reg_names): Likewise.
+ (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
+ (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
+ instead of FRAME_POINTER_REGNUM.
+ (rs6000_initial_elimination_offset): Never eliminate to
+ FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
+ instead. Add elimination offsets from FRAME_POINTER_REGNUM.
+
+ * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
+ if DEFAULT_ABI == ABI_V4.
+
+2005-06-30 Steven Bosscher <stevenb@suse.de>
+
+ * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
+ * tree.h (struct tree_decl): New field `tls_model'.
+ (DECL_TLS_MODEL): New.
+ (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
+ a predicate.
+ * rtl.h (decl_default_tls_model): Add prototype for it.
+ * varasm.c (decl_tls_model): Rewritten and renamed to ...
+ (decl_default_tls_model): ... this.
+ (default_encode_section_info): Use DECL_TLS_MODEL instead of
+ decl_tls_model.
+ (assemble_variable): Replace DECL_THREAD_LOCAL with
+ DECL_THREAD_LOCAL_P.
+ (default_section_type_flags_1): Likewise.
+ (categorize_decl_for_section): Likewise.
+ * tree.c (staticp): Likewise.
+ (recompute_tree_invarant_for_addr_expr): Likewise.
+ * drawf2out (loc_descriptor_from_tree_1): Likewise.
+ * c-decl.c (diagnose_mismatched_decls): Likewise.
+ with DECL_THREAD_LOCAL_P.
+ (start_decl): Likewise.
+ * print-tree.c (print_node): Likewise. Print the TLS model.
+ (grokdeclarator): Set the default DECL_TLS_MODEL here.
+ * c-common.c (handle_tls_model_attribute): Rewrite to set the
+ TLS model up based on the attribute. Never add the attribute
+ to the decl's attributes list.
+ * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
+ DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
+
+2005-06-30 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR testsuite/21967
+ * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
+ TMR_ORIGINAL.
+
+2005-06-30 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
+ mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
+ necessary digit.
+
+2005-06-29 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
+
+2005-06-29 Diego Novillo <dnovillo@redhat.com>
+
+ PR 22234
+ * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
+ when following copy-of chains.
+
+2005-06-30 Jan Hubicka <jh@suse.cz>
+
+ * function.h (struct function): Add saved blocks/unexpanded var list.
+ * gimple-low.c (record_vars): Insert only VAR_DECLs.
+ * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
+ (remap_decl): Do not declare vars.
+ (remap_block): Do not care inserting blocks.
+ (remap_blocks): New function.
+ (copy_body_r): Update debug info.
+ (expand_call_inline): Duplicate callee block tree into caller;
+ copy all the unexpanded_var_list.
+ (save_body): Save unexpanded_var_list and blocks.
+ * tree-optimize.c (tree_rest_of_optimization): Restore
+ blocks/unexpanded_var_list.
+
+2005-06-29 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
+ plus for V4HImode UMAX.
+
+2005-06-29 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c-tree.h (default_function_array_conversion): Take and return
+ struct c_expr.
+ * c-typeck.c (default_function_array_conversion): Split into
+ array_to_pointer_conversion and function_to_pointer_conversion.
+ Take and return struct c_expr.
+ (array_to_pointer_conversion): Do not handle type qualifiers or
+ COMPOUND_EXPRs specially.
+ (build_function_call): Call function_to_pointer_conversion for
+ function designators.
+ (build_unary_op): Call array_to_pointer_conversion, not
+ default_function_array_conversion.
+ (digest_init, output_init_element): Likewise.
+ * c-parser.c: All callers of default_function_array_conversion
+ changed.
+
+2005-06-29 Ziemowit Laski <zlaski@apple.com>
+
+ * config/darwin.c (machopic_select_section): constant ObjC string
+ objects now always have type "__builtin_ObjCString".
+
+2005-06-29 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
+
+2005-06-29 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
+ (vect_create_epilog_for_reduction): Don't use vec_shr if the
+ operation is emulated.
+ (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
+ tests from vectorizable_operation.
+
+2005-06-29 Caroline Tice <ctice@apple.com>
+
+ Fix PR 21956
+ * varasm.c (assemble_start_function): Add "L" to beginning of
+ local labels, so assembler & linker treat them as local.
+
+2005-06-29 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
+ argument. Simplify canonicalization of condition. Use unsigned
+ saturating subtraction for QI and HImode unsigned compares. Use
+ bit arithmetic tricks for SImode unsigned compares.
+ * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
+ * config/i386/sse.md (SSEMODE14): New.
+ (umaxv8hi3): Use us_minus+plus to avoid vcond.
+ (umaxv4si3): New.
+ (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
+ (smin<SSEMODE14>3): Similarly with sminv16qi3.
+ (umin<SSEMODE24>3): Similarly with uminv8hi3.
+
+2005-06-29 Ian Lance Taylor <ian@airs.com>
+
+ * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
+ GEN_INT to gen_int_for_mode when storing register size to memory.
+
+2005-06-29 Stuart Hastings <stuart@apple.com>
+
+ * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
+ * gcc/config/i386/emmintrin.h: Likewise.
+ * gcc/config/i386/pmmintrin.h: Likewise.
+ * gcc/config/i386/xmmintrin.h: Likewise.
+
+2005-06-29 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/21969
+ * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
+ (SET_TYPE_VECTOR_SUBPARTS): New.
+ * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
+ SET_TYPE_VECTOR_SUBPARTS.
+ * tree-vect-transform.c (vect_transform_loop): Add cast.
+
+2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_decompose_address): Accept invalid
+ displacements for addresses containing frame_pointer_rtx or
+ virtual_stack_vars_rtx.
+ (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
+ (s390_initial_elimination_offset): New offset when eliminating the
+ soft frame pointer.
+ * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
+ (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
+
+2006-06-28 Ziemowit Laski <zlaski@apple.com>
+
+ * c-common.c (flag_next_runtime): Move...
+ * toplev.c (flag_next_runtime): ... here.
+ * c-common.h (flag_next_runtime): Move...
+ * flags.h (flag_next_runtime): ... here.
+ * config/darwin-c.c: Include flags.h.
+ * config/t-darwin (darwin-c.o): Depend on flags.h.
+
+2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
+ Disable aliasing warning with void * cast.
+ (sh_fallback_frame_state): Likewise.
+
+2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * target.h (gcc_target): New field allocate_initial_value.
+ * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
+ (TARGET_INITIALIZER): Include it.
+ * integrate.c (allocate_initial_values): Use
+ targetm.allocate_initial_value.
+ * system.h: Poison ALLOCATE_INITIAL_VALUE.
+ * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
+ * config/sh/sh.c (sh_pr_n_sets): Make it static.
+ (sh_allocate_initila_value): New function.
+ (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
+ * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
+ * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
+ update from ALLOCATE_INITIAL_VALUE.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * tree-vectorizer.c (vect_is_simple_reduction): Compare types
+ using TYPE_MAIN_VARIANT.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
+ when using psubN.uuu.
+
+2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
+
+ * doc/gcc.texi: Update FSF address.
+
+2005-06-28 Eric Christopher <echristo@redhat.com>
+
+ PR c/22052
+ PR c/21975
+ * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
+ Use. Fix detection of invalid extern inline redefinition.
+
+2005-06-28 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-optimize.c (init_tree_optimization_passes): Fix typo.
+
+2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
+ saturating subtraction for QI and HImode unsigned compares. Use
+ bit arithmetic tricks for SImode unsigned compares.
+ (ia64_expand_vcondu_v2si): Remove.
+ (ia64_expand_vecint_cmov): Don't call it.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * rtlanal.c (nonzero_bits1): Use the mode of the value for
+ determining integral-ness for comparisons.
+
+2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
+
+2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
+
+ * target.h (invalid_conversion, invalid_unary_op,
+ invalid_binary_op): New hooks.
+ * target-def.h (TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
+ TARGET_INITIALIZER): Likewise.
+ * hooks.h (hook_constcharptr_tree_tree_null,
+ hook_constcharptr_int_tree_null,
+ hook_constcharptr_int_tree_tree_null): New.
+ * hooks.c (hook_constcharptr_tree_tree_null,
+ hook_constcharptr_int_tree_null,
+ hook_constcharptr_int_tree_tree_null): Likewise.
+ * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
+ * c-convert.c (convert): Use invalid_conversion hook.
+ * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
+ (build_binary_op): Use invalid_binary_op hook.
+ * config/ia64/ia64-modes.def: Define RFmode.
+ * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
+ (ia64_expand_movxf_movrf): New.
+ * config/ia64/ia64.md (movxf): Move code to
+ ia64_expand_movxf_movrf.
+ (movrf, movrf_internal): New.
+ * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
+ ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
+ (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
+ Add mode parameter. Make static.
+ (ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
+ as well as XFmode.
+ (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
+ ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
+ (ia64_init_builtins): Set up __fpreg as RFmode.
+ (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
+
+2006-06-28 Adrian Straetling <straetling@de.ibm.com>
+
+ * builtins.c: (expand_builtin_memset): Rewrite to support
+ 'set_storage_via_setmem'.
+ * expr.c: (enum insn_code setmem_optab): Define.
+ (enum insn_code clrmem_optab): Remove.
+ (set_storage_via_setmem): New function.
+ (clear_storage_via_setmem): Remove.
+ (clear_storage): Replace call to "clear_storage_via_clrmem" with
+ "set_storage_via_setmem".
+ * expr.h: (set_storage_via_setmem): Declare.
+ (CLEAR_RATIO): Redefine using HAVE_setmemM.
+ * optabs.h: (enum insn_code setmem_optab): Declare.
+ (enum insn_code clrmem_optab): Remove.
+ * optabs.c: (init_optabs): Initialize setmem_optab.
+ (enum insn_code clrmem_optab): Remove.
+ * genopinit.c: (otabs): Likewise.
+ * doc/md.texi: Document new standard pattern 'setmem'. Remove
+ 'clrmem'.
+ * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
+ 'operands' ordering.
+ * config/frv/frv.c: (frv_expand_block_clear): Likewise.
+ * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
+ * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
+ FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
+ * config/avr/avr.md: ("clrmemhi"): Likewise.
+ * config/frv/frv.md: ("clrmemsi"): Likewise.
+ * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
+ * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
+ * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
+ * config/s390/s390.md: ("clrmem<mode>"): Likewise.
+
+2005-06-28 Paul Brook <paul@codesourcery.com>
+
+ * Makefile.in: Set and use UNWIND_H. Install as unwind.h.
+ * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
+ * except.c (add_ehspec_entry): Generate arm eabi filter lists.
+ (assign_filter_values): Ditto.
+ (output_ttype): New function.
+ (output_function_exception_table): Use output_ttype. Generate arm
+ eabi filter lists.
+ (default_init_unwind_resume_libfunc): New function.
+ * except.h (default_init_unwind_resume_libfunc): Add prototype.
+ * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
+ * opts.c (decode_options): Use targetm.unwind_tables_default.
+ * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
+ (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
+ * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
+ and arm_eabi_unwinder.
+ * unwind-c.c: Support Arm EABI unwinder.
+ * unwind.h: Rename ...
+ * unwind-generic.h: ... To this.
+ * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
+ (TARGET_UNWID_TABLES_DEFAULT): Document.
+
+ * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
+ * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
+ (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
+ Define.
+ (thumb_pushpop, thumb_output_function_prologue): Output unwinding
+ directives.
+ (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
+ * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
+ !TARGET_UNWIND_INFO.
+ (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
+ * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
+ * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
+ ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
+ * config/arm/lib1funcs.asm: Include libunwind.S.
+ * config/arm/libgcc-bpabi.ver: Add unwinding routines.
+ * config/arm/libunwind.S: New file.
+ * config/arm/pr-support.c: New file.
+ * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
+ (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
+ * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
+ * config/arm/unwind-arm.c: New file.
+ * config/arm/unwind-arm.h: New file.
+ * config/i386/t-netware (USER_H): Remove unwind.h.
+ * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
+
+2005-06-28 DJ Delorie <dj@redhat.com>
+
+ * c-decl.c (pop_scope): Move warning control into warning call.
+ (diagnose_mismatched_decls): Likewise.
+ (pushdecl): Likewise.
+ (start_decl): Likewise.
+ (grokparms): Likewise.
+ (start_function): Likewise.
+ (store_parm_decls_newstyle): Likewise.
+ (store_parm_decls_oldstyle): Likewise.
+ (finish_function): Likewise.
+ (declspecs_add_scspec): Likewise.
+ * c-format.c (decode_format_attr): Likewise.
+ (maybe_read_dollar_number): Likewise.
+ (avoid_dollar_number): Likewise.
+ (finish_dollar_format_checking): Likewise.
+ (check_format_info): Likewise.
+ (check_format_info_main): Likewise.
+ (check_format_types): Likewise.
+ (format_type_warning): Likewise.
+ * c-typeck.c (function_types_compatible_p): Likewise.
+ (build_array_ref): Likewise.
+ (convert_arguments): Likewise.
+ (build_c_cast): Likewise.
+ (store_init_value): Likewise.
+ (process_init_element): Likewise.
+ (c_start_case): Likewise.
+ * stor-layout.c (finalize_record_size): Likewise.
+ * tree-cfg.c (execute_warn_function_noreturn): Likewise.
+ * tree-inline.c (expand_call_inline): Likewise.
+
+2005-06-28 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/22134
+ * config/i386/i386.md (fist<mode>2_with_temp splitter):
+ Clobber memory operand, not scratch register.
+
+2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (machine_function): New field has_landing_pad_p.
+ (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
+ s390_regs_ever_clobbered): New functions.
+ (s390_return_addr_rtx): Use get_hard_reg_initial_value.
+ (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
+ Use s390_regs_ever_clobbered.
+ (s390_emit_prologue): Don't use r14 as temp reg if its content is used
+ for builtin_return_address.
+ * config/s390/s390.md ("exception_receiver"): New expander.
+ * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
+ added.
+
+2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * except.c (current_function_has_exception_handlers): Function
+ description added and if statements merged.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
+ (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
+ comparison operations.
+ (ia64_expand_vecint_minmax): Fix size of xops.
+ * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
+ (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
+ type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
+ (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
+ duplicate little-endian adjustment.
+
+2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
+
+ * doc/include/texinfo.tex: Import from upstream CVS.
+
+2005-06-28 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_remove_node): Do not release function bodies until
+ full cgraph is built.
+ * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
+ * cgraphunit.c (cgraph_finalize_function): Update call of
+ cgraph_decide_inlining_incrementally.
+ (initialize_inline_failed): Break out of ...
+ (cgraph_analyze_function): ... here.
+ (rebuild_cgraph_edges): New function.
+ (pass_rebuild_cgraph_edges): New pass.
+ * common.opt (fearly-inlining): New flag.
+ * ipa-inline.c: Include ggc.h
+ (cgraph_clone_inlined_nodes): Avoid re-using of original copy
+ when cgraph is not fully built.
+ (cgraph_decide_inlining_incrementally): Add early mode.
+ (cgraph_early_inlining): New function.
+ (cgraph_gate_early_inlining): Likewise.
+ (pass_early_ipa_inline): New pass.
+ * ipa.c (cgraph_postorder): NULLify aux pointer.
+ * tree-inline.c (expand_call_inline): Avoid warning early.
+ * tree-optimize.c (pass_early_local_passes): New.
+ (execute_cleanup_cfg_pre_ipa): New.
+ (pass_cleanup_cfg): New.
+ (register_dump_files): Fix handling subpasses of IPA pass.
+ (init_tree_optimization_passes): Add early passes.
+ (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
+ * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
+ pass_early_ipa_inline): New passes.
+ * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
+
+ * invoke.texi: Document early-inlining.
+
+2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
+
+ * doc/include/fdl.texi: Merge in changes from upstream.
+ * doc/include/gpl.texi: Likewise.
+
+2005-06-27 Diego Novillo <dnovillo@redhat.com>
+
+ PR 21959
+ * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
+ casts between unsigned and signed types with different size
+ or precision.
+
+2005-06-28 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (exercute_free_datastructures):
+ Do not disband implicit edges; do not attempt to build insn list;
+ do not free cfg annotations.
+ (execute_free_cfg_annotations); Disband implicit edges here;
+ free cfg annotations here too.
+ (pass_free_cfg_annotations); New pass.
+ (init_tree_optimization_passes); Add pass_free_cfg_annotations.
+ * tree-ssa-operands.c (free_ssa_operands); Recover; export.
+ * tree-ssa-operands.h (free_ssa_operands); declare.
+ * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
+ kill PHI nodes.
+ * tree-ssanames.c (release_defs): Kill addresses_taken.
+
+ * basic-block.h (basic_block_def): Kill rbi.
+ (reorder_block_def): Kill; Remove next field (replaced by aux);
+ move other fields to ...
+ (rtl_bb_info): ... here.
+ * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
+ copy_bb, connect_traces, add_labels_and_missing_jumps
+ fix_up_fall_thru_edges, fix_crossing_conditional_branches,
+ duplicate_computed_gotos, partition_hot_cold_basic-blocks):
+ Update to new fields.
+ * cfg.c (initialize_bb_rbi): Kill.
+ * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
+ fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
+ * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
+ (try_redirect_by_replacing_jump): Update rbi references.
+ (cfg_layout_split_block): Likewise.
+ (cfg_layout_delete_block): Likewise.
+ (cfg_layout_merge_blocks): Likewise.
+ * function.c (thread_prologue_and_epilogue_insns): Likewise.
+ * passes.c (rest_of_handle_sms): Likewise.
+ * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
+
+2005-06-27 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
+ in verbose_asm output.
+ * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
+ CONFIG_PPC405CR.
+ * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
+ 405cr.
+
+2005-06-27 Jakub Jelinek <jakub@redhat.com>
+
+ * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
+ (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
+ (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
+ (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
+ ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
+ * builtins.c: Include tree-flow.h.
+ (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
+ (expand_builtin_object_size, expand_builtin_memory_chk,
+ maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
+ compute_object_offset, compute_builtin_object_size,
+ fold_builtin_object_size): New functions.
+ (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
+ (fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
+ and BUILT_IN_{,F}PRINTF_UNLOCKED.
+ (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+ fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
+ fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
+ fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
+ New functions.
+ * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
+ BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
+ BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
+ BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
+ BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
+ BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
+ BUILT_IN_VPRINTF_CHK): New builtins.
+ * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
+ Document.
+ (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
+ BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
+ BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
+ BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
+ BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
+ BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
+ * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
+ DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
+ * Makefile.in (OBJS-common): Add tree-object-size.o.
+ (tree-object-size.o): Add dependencies.
+ * tree-pass.h (pass_object_sizes): Add.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_object_sizes.
+ * tree-object-size.c: New file.
+ * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+ fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
+ compute_builtin_object_size, init_object_sizes, fini_object_sizes):
+ New prototypes.
+ * tree-ssa-ccp.c (get_strlen): Rename to ...
+ (get_maxval_strlen): ...this function. Handle also computing of maximum
+ string length and maximum integral value.
+ (ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
+ instead of get_strlen. Pass CALLEE and ARGLIST variables to the
+ folding functions instead of computing them again.
+ (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
+ into some other builtin.
+ * doc/extend.texi (Object Size Checking): Document.
+
+ * regrename.c (copy_value): Fix comment.
+
+ * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
+ instead of preprocessor conditionals.
+
+ * targhooks.c (default_hidden_stack_protect_fail): Fall back to
+ default_external_stack_protect_fail if visibility is not supported
+ or not flag_pic.
+ * config/i386/i386.c (ix86_stack_protect_fail): New function.
+ (TARGET_STACK_PROTECT_FAIL): Define.
+ * config/i386/i386.md (stack_protect_si): Change CLOBBER into
+ SET to zero.
+ (stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
+ invalid instruction xorl %rax, %rax.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
+ * cfgexpand.c: Include params.h.
+ (has_protected_decls, has_short_buffer): New.
+ (expand_stack_vars): Take a predicate to determine what to expand.
+ (defer_stack_allocation): True when flag_stack_protect on.
+ (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
+ (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
+ (stack_protect_classify_type, stack_protect_decl_phase): New.
+ (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
+ (add_stack_protection_conflicts, create_stack_guard): New.
+ (expand_used_vars): Add stack protection logic.
+ (tree_expand_cfg): Likewise.
+ * common.opt (Wstack-protector): New.
+ (fstack-protector, fstack-protector-all): New.
+ * function.c: Include predict.h.
+ (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
+ wants to copy the parameter into the stack frame.
+ (stack_protect_prologue, stack_protect_epilogue): New.
+ (expand_function_end): Call stack_protect_epilogue. Do
+ sjlj_emit_function_exit_after after naked_return_label.
+ * function.h (struct function): Add stack_protect_guard.
+ * params.def (PARAM_SSP_BUFFER_SIZE): New.
+ * toplev.c (process_options): Disable flag_stack_protect and/or
+ warn_stack_protect based on FRAME_GROWS_DOWNWARD.
+ * tree.h (stack_protect_prologue): Declare.
+
+ * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
+ (TARGET_STACK_PROTECT_FAIL): New.
+ (TARGET_INITIALIZER): Add them.
+ * target.h (struct gcc_target): Add stack_protect_guard and
+ stack_protect_fail.
+ * targhooks.c: Include ggc.h, gty header.
+ (stack_chk_guard_decl, default_stack_protect_guard): New.
+ (stack_chk_fail_decl, default_external_stack_protect_fail): New.
+ (default_hidden_stack_protect_fail): New.
+ * targhooks.h (default_stack_protect_guard): Declare.
+ (default_external_stack_protect_fail): Declare.
+ (default_hidden_stack_protect_fail): Declare.
+ * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
+ * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
+ (trap): Use ud2.
+ (conditional_trap, conditional_trap_1): Remove.
+ (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
+ (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
+ * doc/md.texi (stack_protect_set, stack_protect_test): New.
+ * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
+ (TARGET_STACK_PROTECT_FAIL): New.
+
+ * libgcc-std.ver (GCC_4.1.0): New.
+ * libgcc.h (__stack_chk_guard): Declare.
+ (__stack_chk_fail, __stack_chk_fail_local): Declare.
+ * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
+ * mklibgcc.in (lib2funcs): Add them.
+
+2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR c/21911
+ * c-common.c (check_function_sentinel): Pass in named argument
+ list, skip over named arguments before looking for a sentinel.
+ (check_function_arguments): Pass in named argument list.
+ * c-common.h (check_function_arguments): Likewise.
+ * c-typeck.c (build_function_call): Likewise.
+
+2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * genautomata.c (decl_mode_check_failed,
+ regexp_mode_check_failed): Add noreturn attribute.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
+ * doc/invoke.texi: Fix typos.
+
+ * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
+ convert.c, lambda-code.c, predict.c, tree-cfg.c,
+ tree-complex.c, tree-data-ref.c, tree-if-conv.c,
+ tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
+ tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
+ tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+ tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
+ tree.c: Use fold_buildN instead of fold (buildN (...)).
+
+2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/install.texi (Specific): Do not specify the concrete
+ versions of GCC provided by Cygwin. Simplify the part on
+ building on Cygwin.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arc/arc-protos.c: Remove the prototype for
+ arc_finalize_pic.
+ * config/arc/arc.c (arc_finalize_pic): Remove.
+ * config/arc/arc.h (FINALIZE_PIC): Likewise.
+ * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
+ * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
+
2005-06-26 Jakub Jelinek <jakub@redhat.com>
PR middle-end/17965
config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
2005-06-20 Roger Sayle <roger@eyesopen.com>
-2005-06-20 Fariborz Jahanian <fjahanian@apple.com>
+ Fariborz Jahanian <fjahanian@apple.com>
* combine.c (simplify_set): Simplify setting of CC register
by removing redundant compare with 0 on RHS.