X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=d8fdb6dbd376654573e8fecafafad8e183870495;hb=68c35eb8e6a605a0db9d18d697ec13d7ae413060;hp=82fb8a6ca94ed1cade4035df25b65529436a5d10;hpb=01020a5ffd648963482b27b4b24f4c7719274bf7;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 82fb8a6ca94..d8fdb6dbd37 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,882 @@ +2005-06-27 Diego Novillo + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * genautomata.c (decl_mode_check_failed, + regexp_mode_check_failed): Add noreturn attribute. + +2005-06-26 Kazu Hirata + + * 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 + + * 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 + + * 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 + + 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 + + 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 + + * Makefile.in (OBJS-common): Remove duplicate object file + names. + +2005-06-25 Jan Hubicka + + * 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 + + * 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 + + * all files: Update FSF address in copyright headers. + +2005-06-25 Kelley Cook + + * gengtype.c: Update FSF address in copyright header. + (create_file): Update FSF in outputed copyright header. + +2005-06-24 Kazu Hirata + + * 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 + + * 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 + + * 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 + + PR 22171 + * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL + before use. + +2005-06-23 Mark Mitchell + + 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 + + * opts.c (decode_options): Enable unit-at-a-time by default at -O1. + +2005-06-23 Jeff Law + + * 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 + + 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 + + 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 + + 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 to define_expand. All stwcx + patterns test PPC405_ERRATUM77. + +2005-06-23 Jan Hubicka + + * tree-inline.c (copy_body_r): Remap labels correctly. + +2005-06-22 Alan Modra + + * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete. + +2005-06-22 Richard Kenner + + 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 + + * tree-vrp.c (extract_range_from_unary_expr): Handle type + conversions better. + +2005-06-21 Dorit Nuzman + + * 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_, vec_shr_, altivec_vsumsws_nomode, + reduc_splus_, reduc_uplus_v16qi): New. + +2005-06-20 Daniel Berlin + + * 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 + + config/sh/linux.h (FUNCTION_PROFILER): Constify a char*. + +2005-06-20 Roger Sayle +2005-06-20 Fariborz Jahanian + + * combine.c (simplify_set): Simplify setting of CC register + by removing redundant compare with 0 on RHS. + +2005-06-20 Jan Beulich + + * 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 + + * 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 + + * integrate.c (allocate_initial_values): Update the references + to global_live_at_start and global_live_at_end. + +2005-06-20 Jan Hubicka + + * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag. + * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only + when asked for. + * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations, + unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): + Update call of duplicate_loop_to_header_edge. + (apply_opt_in_copies): Clear out aux pointers. + +2005-06-19 Joseph S. Myers + + * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. + (ix86_mangle_fundamental_type): New. + * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. + (ia64_mangle_fundamental_type): New. + +2005-06-19 Roger Sayle + + * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on + INTEGER_CST nodes. + * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on + CONSTANT_CLASS_P nodes. + +2005-06-19 Richard Henderson + + * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error; + the shift is always required. + +2005-06-19 Richard Henderson + + * config/ia64/ia64-modes.def (V4SF): Add. + * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR. + * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to + integer mode changes in fp regs. + * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New. + * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names. + (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New. + (vcondv2sf): Use gen_fpack + (fpack): Remove * from name. + (fswap, fmix_l, fmix_r, fmix_lr): New. + (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New. + (vec_extractv2sf_1, vec_extractv2sf): New. + +2005-06-19 Andreas Krebbel + + * combine.c (make_compound_operation): Use simplify_subreg. Delete + a optimization already done by simplify_subreg. + +2005-06-19 Ulrich Weigand + + * loop.c (scan_loop): Do not consider insns setting the frame + pointer to be candidates for hoisting. + +2005-06-19 Uros Bizjak + + * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf): + Remove instruction patterns. + (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387". + (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_): + Set "unit" attribute to "i387". + (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer) + (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387" + for alternative 0. + (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed) + (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit" + attribute to "i387" when "type" attribute equals "multi". + (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387) + (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387) + (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed) + (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit" + attribute to "i387" when "type" attribute equals "multi". + * config/i386/mmx.md (*mov_internal_rex64) + (*mov_internal, *movv2sf_internal_rex64, *movv2sf_internal): + Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt". + (mmx_pmovmskb): Correct wrong "type" and "mode" attributes. + * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di) + (sse_cvttpd2pi): Set "unit" attribute to "mmx". + (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute + to "mmx" for "y" operand 1. + +2005-06-19 Uros Bizjak + + * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P + for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX + and SSE registers to determine if regno is valid. + (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on + TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up. + +2005-06-18 Richard Henderson + + * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN + for control-altering statements; set it again for returns. + (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are + not MODIFY_EXPR. + +2005-06-18 Richard Henderson + + PR tree-opt/22116 + * tree-ssa-pre.c (create_expression_by_pieces): Set + DECL_COMPLEX_GIMPLE_REG_P. + (insert_into_preds_of_block): Likewise. + +2005-06-18 Steven Bosscher + + * Makefile.in: Fix tree-cfgcleanup.c dependencies. + +2005-06-18 Richard Henderson + + * expr.c (store_constructor): Use store of 0 to indicate value + death instead of a clobber. + + * config/i386/i386.c (ix86_expand_reduc_v4sf): New. + * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare. + * config/i386/sse.md (reduc_plus_v4sf): New. + (reduc_smax_v4sf, reduc_smin_v4sf): New. + +2005-06-18 James A. Morrison + + * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for + nonnegative values of X. + +2005-06-18 Uros Bizjak + + * doc/md.texi (Standard Names): Change insn pattern name + from truncM2 to btruncM2 for 'trunc' built-in description. + Add rintM2 insn pattern description. + +2005-06-18 Kaveh R. Ghazi + + * c-decl.c (locate_old_decl): Add format attribute. + (implicit_decl_warning): Likewise. + + * diagnostic.h (verbatim): Move ... + * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG. + * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG. + +2005-06-18 Roger Sayle + + PR target/22083 + * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition. + +2005-06-18 Dorit Nuzman + + * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New + tree-codes. + * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin, + OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction. + (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab, + reduc_plus_optab): New optabs for reduction. + * expr.c (expand_expr_real_1): Handle new tree-codes. + * tree-inline.c (estimate_num_insns_1): Handle new tree-codes. + * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle + new tree-codes. + * optabs.c (optab_for_tree_code): Handle new tree-codes. + (init_optabs): Initialize new optabs. + * genopinit.c (optabs): Define handlers for new optabs. + + * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in + case of a phi that is marked as relevant. Call vectorizable_reduction. + (vect_mark_relevant): Phis may be marked as relevant. + (vect_mark_stmts_to_be_vectorized): The use corresponding to the + reduction variable in a reduction stmt does not mark its defining phi + as relevant. Update documentation accordingly. + (vect_can_advance_ivs_p): Skip reduction phis. + * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes + additional argument. Handle reduction. + (vect_create_destination_var): Update call to vect_get_new_vect_var. + Handle non-vector argument. + (get_initial_def_for_reduction): New function. + (vect_create_epilog_for_reduction): New function. + (vectorizable_reduction): New function. + (vect_get_new_vect_var): Handle new vect_var_kind. + (vectorizable_assignment, vectorizable_operation, vectorizable_store, + vectorizable_condition): Update call to vect_get_new_vect_var. + (vect_transform_stmt): Call vectorizable_reduction. + (vect_update_ivs_after_vectorizer): Skip reduction phis. + (vect_transform_loop): Skip if stmt is both not relevant and not live. + * tree-vectorizer.c (reduction_code_for_scalar_code): New function. + (vect_is_simple_reduction): Was empty - added implementation. + * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value. + (reduc_vec_info_type): New enum vect_def_type value. + * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf, + reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf, + reduc_plus_v4si, reduc_plus_v4sf): New define_expands. + + * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove + ENABLE_CHECKING around gcc_assert. + * tree-vect-transform.c (vect_do_peeling_for_loop_bound, + (vect_do_peeling_for_alignment, vect_transform_loop, + vect_get_vec_def_for_operand): Likewise. + +2005-06-18 Joseph S. Myers + + * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a + big-endian unnamed __float80 value. + +2005-06-18 Richard Henderson + + PR tree-opt/22103 + * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex + destinations. + +2005-06-17 Richard Henderson + + * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use + initialize_original_copy_tables and free_original_copy_tables. + (vect_do_peeling_for_alignment): Likewise. + +2005-06-17 Pat Haugen + + * bb-reorder.c (find_traces_1_round): Use succ block frequency + instead of edge frequency for calls to better_edge_p. + +2005-06-17 Andrew Pinski + + PR tree-opt/22105 + * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST. + +2005-06-17 Steve Ellcey + + PR target/19889 + * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy). + (PROFILE_HOOK): New. + (PROFILE_BEFORE_PROLOGUE): Undef. + (NO_PROFILE_COUNTERS): New. + * config/ia64/ia64-protos.h (ia64_profile_hook): New. + * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef. + (gen_mcount_func_rtx): New. + (ia64_profile_hook): New. + * config/ia64/ia64.md (ip_value): New. + +2005-06-17 Devang Patel + + * config/rs6000/predicates.md (s5bit_cint_operand, + u5bit_cint_operand): New. + * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth, + altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates. + * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed + 5 bit constant check. + +2005-06-17 Richard Henderson + + * local-alloc.c (update_equiv_regs): Update reg_equiv_init + properly when moving an initialization insn. + +2005-06-17 Paolo Bonzini + + * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the + passed variable. + * configure.ac: Regenerate. + +2005-06-17 Jan Hubicka + + * tree-optimize.c (execute_ipa_pass_list): New. + (ipa_passes): Use it. + +2005-06-16 Richard Henderson + + PR tree-opt/22022 + * tree-complex.c (update_phi_components): Avoid no-op moves. + +2005-06-16 Joseph S. Myers + + * Makefile.in (cc1-checksum.c): Use + build/genchecksum$(build_exeext), not build/genchecksum$(exeext). + +2005-06-16 Geoffrey Keating + + * gengtype.c (adjust_field_rtx_def): Don't add a skip to + basic_block types. + + * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from + SHLIB_MINOR. + (SHLIB_REVISION): Delete. + (SHLIB_VERSTRING): Update to compensate. + (SHLIB_SONAME): Just use one '.' in the name. + +2005-06-16 Eric Botcazou + + PR tree-optimization/22018 + * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow. + +2005-06-16 Richard Henderson + + PR tree-opt/22035 + * builtins.c (fold_builtin_complex_mul): Remove. + (fold_builtin_complex_div): Remove. + (fold_builtin_1): Don't call them. + * fold-const.c (fold_complex_add, fold_complex_mult_parts, + fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove. + (fold_binary): Don't call them. Don't expand complex comparisons to + elementary comparisons. + * tree-complex.c (init_dont_simulate_again): Enhance search for + stmts that require decomposition. + (complex_visit_stmt): Handle RETURN_EXPR properly. + (create_components): Handle no referenced variables properly. + * tree.h (fold_complex_mult_parts): Remove. + (fold_complex_div_parts): Remove. + +2005-06-16 Richard Guenther + + * doc/extend.texi: Document sseregparm target attribute. + Clarify fastcall and regparm documentation. + * config/i386/i386.h: Adjust float_in_sse documentation. + * config/i386/i386.c: Add new target attribute sseregparm. + (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute): + Merge into ... + (ix86_handle_cconv_attribute): ... here. Also handle + sseregparm attribute. + (ix86_comp_type_attributes): Compare sseregparm attributes. + (ix86_function_sseregparm): New function, split out from ... + (init_cumulative_args): ... here. Use to decide use + of SSE registers and error in case of missing support. + (ix86_value_regno): Likewise. + (function_arg_advance): Do not bail out for DFmode if we need + to pass doubles in registers. + (function_arg): Likewise. + +2005-06-16 Paolo Bonzini + Daniel Jacobowitz + Alan Modra + + * configure.ac (gcc_version): Set near the beginning. + (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are + found in the tree. Use gcc_AC_PROG to find the tools in the system. + (objdump): Do not look for it. + * Makefile.in (NM_FOR_TARGET): Point to ./nm + (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET, + ORIGINAL_NM_FOR_TARGET): Substitute from autoconf. + (as, ld, nm): New rules. + (libgcc.mk): Depend on them. + * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL, + gcc_AC_BUILD_EXEEXT): New. + (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT. + * configure: Regenerate. + 2005-06-16 Jan Hubicka + * basic-block.h (rtl_bb_info): Break out head_, end_, + global_live_at_start, global_live_at_end from ... + (basic_block_def): ... here; update all references + (BB_RTL): New flag. + (init_rtl_bb_info): Declare. + * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL + flag. + * cfgrtl.c: Include ggc.h + (create_basic_block_structure): Init bb info. + (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer. + (init_rtl_bb_info): New function. + (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here. + * cfghooks.c (merge_block): Do not copy global_live_at_end here. + * cfg.c (clear_bb_flags): Skip BB_RTL flag. + (dump_flow_info): Gueard global_live_* dumping. + * Makefile.in (cfg.o): Add new dependencies. * basic-block.h (reorder_block_def): Kill original/copy/duplicated/copy_number fields. @@ -116,7 +993,7 @@ 2005-06-15 Richard Sandiford - * doc/invoke.texi (-mips16): Fix typo. + * doc/invoke.texi (-mips16): Fix typo. 2005-06-15 David Ung @@ -130,7 +1007,7 @@ mips16e seb/seh. (*extend2): Disable this pattern for GENERATE_MIPS16E. - * doc/invoke.texi (MIPS Options): Add comment to -mips16 + * doc/invoke.texi (MIPS Options): Add comment to -mips16 indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64. 2005-06-15 Diego Novillo @@ -266,18 +1143,6 @@ * config/rs6000/predicates.md (scc_operand): Delete. * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand. -2005-06-13 Jakub Jelinek - - * 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 PR middle-end/21985 @@ -632,18 +1497,18 @@ 2005-06-08 Dale Johannesen - * config/darwin.c (darwin_binds_local_p): New. - * config/darwin-protos.h (darwin_binds_local_p): Declare it. - * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO. - * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove. - (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p. + * config/darwin.c (darwin_binds_local_p): New. + * config/darwin-protos.h (darwin_binds_local_p): Declare it. + * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO. + * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove. + (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p. 2005-06-08 Aldy Hernandez - * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string, - rs6000_isel, rs6000_spe, rs6000_alignment_string, - rs6000_sched_restricted_insns_priority_str, - rs6000_sched_restricted_insns_priority, rs6000_abi_string. + * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string, + rs6000_isel, rs6000_spe, rs6000_alignment_string, + rs6000_sched_restricted_insns_priority_str, + rs6000_sched_restricted_insns_priority, rs6000_abi_string. 2005-06-08 Zdenek Dvorak @@ -735,7 +1600,7 @@ 2005-06-08 Richard Henderson PR target/21721 - * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0. + * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0. 2005-06-08 Eric Botcazou @@ -3586,10 +4451,6 @@ 2005-05-17 Paolo Bonzini - * tree-ssa-math-opts.c: New file. - -2005-05-17 Paolo Bonzini - * Makefile.in: Add tree-ssa-math-opts.c. * expr.c (expand_expr_real_1) : Never emit as a*(1/b). * fold-const.c (distribute_real_division): New.