+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.