+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
+ * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
+ instead of alloca for really big argument sizes.
+
+ PR middle-end/22028
+ * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
+ earlier in the function.
+
+ * regrename.c (copy_value): Don't replace fixed or global
+ regs with older regs.
+
+ * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
+ * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
+ instead of preprocessor conditionals.
+ (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
+ * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
+ depending on if it was or was not defined previously.
+ * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
+ definition of FRAME_GROWS_DOWNWARD means frame grows downward.
+ * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
+ comment.
+ * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
+ * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
+ comment.
+ * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
+ * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
+ * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ PR tree-optimization/22026
+ * tree-vrp.c (extract_range_from_binary_expr): Drop to
+ VR_VARYING if a binary expression involving VR_ANTI_RANGE is
+ PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ * Makefile.in (OBJS-common): Remove duplicate object file
+ names.
+
+2005-06-25 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
+ * cfg.c (update_bb_profile_for_threading): Fix rescaling.
+
+ * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
+ when not neecesary
+ (rest_of_compilation): Fix conditional on branch prob pass.
+ * predict.c (tree_estimate_probability): Enable strip_builtin_expect
+ when not loop optimizing.
+
+2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
+ New patterns.
+ (movbi): Add alternative to set CC to zero.
+ (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
+ compare_ltu): Now named patterns.
+
+2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
+
+ * all files: Update FSF address in copyright headers.
+
+2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gengtype.c: Update FSF address in copyright header.
+ (create_file): Update FSF in outputed copyright header.
+
+2005-06-24 Kazu Hirata <kazu@codesourcery.com>
+
+ * cfglayout.c (block_locators_locs, line_locators_locs,
+ line_locators_lines, file_locators_locs): Change the type to
+ VEC(int,heap)*.
+ (insn_locators_initialize, change_scope, insn_scope,
+ locator_line, insn_line, locator_file): Use VEC instead of
+ VARRAY.
+
+2005-06-24 Jason Merrill <jason@redhat.com>
+
+ * tree-nrv.c (tree_nrv): Fix to check assignments to the
+ RESULT_DECL rather than just RETURN_EXPRs.
+ (finalize_nrv_r): Adjust.
+
+2005-06-24 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (init_tree_optimization_passes): Fix flags of
+ all_passes and all_ipa_passes.
+
+ * c-common.c: Include cgraph.h
+ (handle_externally_visible_attribute): New function.
+ (c_common_att): Add "externally_visible" attribute.
+ * cgraph.c (decide_is_variable_needed): Obey externally
+ visible flag.
+ (cgraph_varpool_finalize_decl): Avoid redundant checking.
+ * cgraph.h (struct cgraph_node): New flag externally_visible.
+ (decide_is_function_needed): Obey externally visible flag.
+ (cgraph_finalize_function): Avoid redundant checks.
+ (cgraph_function_and_variable_visibility): Bring symbols local
+ when asked for.
+ * common.opt (fwhole-program): New flag.
+
+ * doc/invoke.texi (-fwhole-program): Document.
+
+2005-06-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR 22171
+ * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
+ before use.
+
+2005-06-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR 22000
+ * tree-ssa-operands.c (get_expr_operands): Check the volatility of
+ the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
+
+2005-06-24 Jan Hubicka <jh@suse.cz>
+
+ * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
+
+2005-06-23 Jeff Law <law@redhat.com>
+
+ * tree-optimize.c (init_tree_optimization_passes): Move
+ copy prop pass to run just before VRP.
+ * tree-vrp.c (remove_range_assertions): Remove copies created
+ by ASSERT_EXPR removal.
+
+2005-06-23 Kazu Hirata <kazu@codesourcery.com>
+
+ PR tree-optimization/22117
+ * tree-vrp.c (extract_range_from_binary_expr): Compute a
+ correct range when adding two pointers.
+
+2005-06-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/19317
+ Leave the return slot target in the MODIFY_EXPR rather than making
+ it an argument, but only use it if the CALL_EXPR has a flag set.
+ * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
+ CALL_EXPR_RETURN_SLOT_OPT.
+ * calls.c (expand_call): Adjust.
+ * tree-inline.c (expand_call_inline): Adjust.
+ * tree-pretty-print.c (dump_generic_node): Adjust.
+
+ And set the flag as appropriate.
+ * gimplify.c (gimplify_modify_expr_rhs): Set
+ CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
+ * tree-nrv.c (execute_return_slot_opt): Set
+ CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
+ * tree-pass.h: Declare pass_return_slot.
+ * tree-optimize.c (init_tree_optimization_passes): Add it.
+
+2005-06-23 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/21760
+ * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
+ * config/rs6000/rs6000.md: Move atomic instructions to ...
+ * config/rs6000/sync.md: Here.
+ Change sync_compare_and_swap<mode> to define_expand. All stwcx
+ patterns test PPC405_ERRATUM77.
+
+2005-06-23 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (copy_body_r): Remap labels correctly.
+
+2005-06-22 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
+
+2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ PR middle-end/20593
+ * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
+ the same as the other cast operands.
+ (output_addressed_constants): Likewise.
+
+2005-06-21 Jeff Law <law@redhat.com>
+
+ * tree-vrp.c (extract_range_from_unary_expr): Handle type
+ conversions better.
+
+2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
+
+ * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
+ (reduc_plus_optab): Removed. Replcaed with...
+ (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
+ * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
+ reduc_uplus_optab instead of reduc_plus_optab.
+ (expand_vec_shift_expr): New function.
+ (init_optabs): Initialize new optabs. Remove initialization of
+ reduc_plus_optab.
+ (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
+ for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
+ * optabs.h (OTI_reduc_plus): Removed. Replaced with...
+ (OTI_reduc_splus, OTI_reduc_uplus): New.
+ (reduc_plus_optab): Removed. Replcaed with...
+ (reduc_splus_optab, reduc_uplus_optab): New optabs.
+ (vec_shl_optab, vec_shr_optab): New optabs.
+ (expand_vec_shift_expr): New function declaration.
+
+ * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
+ * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
+ * expr.c (expand_expr_real_1): Handle new tree-codes.
+ * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
+ * tree-vect-generic.c (expand_vector_operations_1): Add assert.
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
+ alternatives for generating reduction epilog code.
+ (vectorizable_reduction): Don't fail of direct reduction support is
+ not available.
+ (vectorizable_target_reduction_pattern): Likewise.
+
+ * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
+ reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
+ reduc_plus_v4si, reduc_plus_v4sf): Removed.
+ (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
+ reduc_splus_<mode>, reduc_uplus_v16qi): New.
+
+2005-06-20 Daniel Berlin <dberlin@dberlin.org>
+
+ * c-typeck.c (build_function_call): Set fundecl = function again.
+ * tree-ssa-alias.c (find_used_portions): Address taking causes the
+ entire variable to be used.
+ * tree-ssa-structalias.c (do_structure_copy): Fix handling of
+ unknown size variables, and structure copies from addressof
+ operations. Simplify how we do *a = *b type structure copies.
+ (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
+ way. READONLY's address is not taken by default.
+ INTEGER dereference should point to anything.
+ (create_variable_info_for): It's okay for the first field to not start
+ at 0.
+
+2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ 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>
+
+ * combine.c (simplify_set): Simplify setting of CC register
+ by removing redundant compare with 0 on RHS.
+
+2005-06-20 Jan Beulich <jbeulich@novell.com>
+
+ * config/i386/netware-libgcc.def: Update copyright.
+ * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
+ __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
+ * config/i386/netware.c (gen_stdcall_decoration,
+ gen_fastd_decoration): Merge into ...
+ (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
+ WinNT's changes.
+ (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
+ (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
+ * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
+ libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
+ * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
+ use of NX_MUTEX_RECURSIVE.
+
+2005-06-19 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (swap_tree_comparison): Add support for unordered
+ floating point comparisons.
+ * tree-vrp.c (opposite_comparison): Delete.
+ (extract_range_from_assert): Replace calls to opposite_comparison
+ with calls to swap_tree_comparison.
+ (register_edge_assert_for): Likewise.
+ (vrp_evaluate_conditional): Likewise.
+
+2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * integrate.c (allocate_initial_values): Update the references
+ to global_live_at_start and global_live_at_end.
+
2005-06-20 Jan Hubicka <jh@suse.cz>
* cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
* config/rs6000/predicates.md (scc_operand): Delete.
* config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
-2005-06-13 Jakub Jelinek <jakub@redhat.com>
-
- * trans-expr.c (gfc_conv_function_call): Return int instead of
- void. Use a local variable for has_alternate_specifier and
- return it. Avoid modification of function type's return value
- in place, since it may be shared.
- * trans.h (has_alternate_specifier): Remove.
- (gfc_conv_function_call): Change return type.
- * trans-stmt.c (has_alternate_specifier): Remove.
- (gfc_trans_call): Add a local has_alternate_specifier variable,
- set it from gfc_conv_function_call return value.
-
2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
PR middle-end/21985