X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=413aa48e6aa64c467af81ec56f816b9df1283bf1;hp=39e630c790ca07cf705ba7b30bf4c4cf81fcd639;hb=c2bac239e82106c81d06da194983c84219ae6626;hpb=60d211d4e3e10c27c9be021afe8d494aca6be8ae diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 39e630c790c..413aa48e6aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,744 @@ +2005-07-25 Serge Belyshev + + PR other/22337 + * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD. + (ggc_print_statistics): Initialize variable before use. + +2005-07-25 Richard Guenther + + * tree-dfa.c (mark_new_vars_to_rename): Protect against + calling with a PHI_NODE argument. + + * tree-flow-inline.h (overlap_subvar): Protect against + possible overflow. + +2005-07-25 Paolo Bonzini + + * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory. + * configure: Regenerate. + +2005-07-25 Ira Rosen + + * expr.c (highest_pow2_factor): Make extern. + * tree-data-ref.c (ptr_decl_may_alias_p): New function. + (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, + record_array_differ_p, array_ptr_differ_p): Likewise. + (base_object_differ_p): Rename (from array_base_name_differ_p). Support + additional cases. Call the above functions. + (base_addr_differ_p): Moved from tree-vect-analyze.c. Call + base_object_differ_p when there are two base objects. Otherwise, compare + base address and offset. Call may_alias_p. + (dump_data_reference): Use a correct field name. + (analyze_array): Make static. Initialize new data-ref fields. + (analyze_indirect_ref): New function. + (init_data_ref): Initialize new data-ref fields. + (strip_conversion): Moved from tree-vect-analyze.c. + (analyze_offset_expr, get_ptr_offset, address_analysis, + object_analysis): Likewise. + (analyze_offset): New function. + (create_data_ref): Likewise. + (initialize_data_dependence_relation): Call base_addr_differ_p. Compare + dimensions for ARRAY_REFs only. + (build_classic_dist_vector): Make static. + (access_functions_are_affine_or_constant_p): Call macro to get the + address of access functions. + (compute_all_dependences): Add new parameter + compute_self_and_read_read_dependences. Compute self and read-read + dependences if it is true. + (find_data_references_in_loop): Call create_data_ref. Initialize new + data-ref fields. + (compute_data_dependences_for_loop): Add new parameter + compute_self_and_read_read_dependences. Remove parameter nb_loops, + compute nb_loops. Call compute_all_dependences, + build_classic_dist_vector and build_classic_dir_vector with correct + parameters. + (analyze_all_data_dependences): Call compute_data_dependences_for_loop + with correct parameters. Compare dimensions for ARRAY_REFs only. + (free_data_refs): Call macro to free access functions. + * tree-data-ref.h (struct first_location_in_loop): New structure. Move + fields from stmt_vinfo. + (struct base_object_info): New structure. + (struct data_reference): Move fields to base_object_info. Add fields + first_location and object_info for above structures. Move fields from + stmt_info: memtag, ptr_info, subvars, misalignment. Add new field + aligned_to. Add macros to access the new fields. + Update functions declarations. + * tree-flow.h (is_aliased_with): Declare. + * tree-loop-linear.c (linear_transform_loops): Call + compute_data_dependences_for_loop with correct parameters. + * tree-ssa-alias.c (is_aliased_with): New function. + * tree-vect-analyze.c (vect_get_ptr_offset): Remove. + (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise. + (vect_analyze_data_ref_dependence): Get ddr. Remove call to + vect_base_addr_differ_p, compute_subscript_distance and + build_classic_dist_vector. Add printings. Check absolute value of + distance. + (vect_analyze_data_ref_dependences): Go through ddrs instead of + data-refs. + (vect_compute_data_ref_alignment): Get the fields of data-ref instead of + stmt. Check aligned_to. Check if the base is aligned. Remove conversion + to bytes. Add printing. + (vect_compute_data_refs_alignment): Go through loads and stores in one + loop. + (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment, + vect_analyze_data_ref_access): Likewise. + (vect_analyze_pointer_ref_access): Remove. + (vect_address_analysis, vect_object_analysis): Likewise. + (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find + and analyze data-refs in the loop. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the + fields of data-ref instead of stmt. Add init to the offset from the + base. + (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt. + (vect_update_init_of_dr): Likewise. + (vect_update_inits_of_drs): Go through loads and stores in one loop. + * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of + removed fields. + (new_loop_vec_info): Initialize new fields. + (destroy_loop_vec_info): Free new fields. + (vect_strip_conversion): Remove. + * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level. + (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into + datarefs. Add new field ddrs. + Add macros for the new fields access. + (struct _stmt_vec_info): Remove: base_address, initial_offset, step, + base_aligned_p, misalignment, memtag, ptr_info and subvars. + Remove their macros. + * tree.h (highest_pow2_factor): Declare. + +2005-07-25 Jakub Jelinek + + * calls.c (store_one_arg): Check for sibling call MEM arguments + from already clobbered incoming argument area. + +2005-07-24 Kaveh R. Ghazi + + * c-common.c (check_missing_format_attribute): New. + * c-common.h (check_missing_format_attribute): Likewise. + * c-typeck.c (convert_for_assignment): Use it. + +2005-07-24 Andreas Schwab + + * config/m68k/m68k.md ("extendqidi2"): When source is an address + register use a word move. Correct operand of ext.w in 68000 code. + +2005-07-23 Mark Mitchell + + * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT + variables as declarations, rather than definitions. + +2005-07-24 Ira Rosen + + PR tree-optimization/22526 + * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type + of the zero node. + +2005-07-24 Francois-Xavier Coudert + + * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins + that C99 reserve for future use. Use it to define clog10, + clog10f and clog10l. + +2005-07-23 Kaveh R. Ghazi + + * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute. + * configure.ac: Check for -Wmissing-format-attribute. + + * configure: Regenerate. + +2005-07-23 Richard Henderson + + PR tree-optimization/22623 + * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol. + +2005-07-23 Giovanni Bajo + + PR target/22577 + * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR. + +2005-07-23 Kaveh R. Ghazi + + * Makefile.in (C_TREE_H): Update dependencies. + * c-tree.h: Include toplev.h. + * diagnostic.h (diagnostic_set_info): Add format attribute. + * rtl-error.c (diagnostic_for_asm): Likewise. + +2005-07-23 Chao-ying Fu + + * config/mips/mips-dsp.md: New file. + * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes. + * config/mips/mips.c (mips_function_type): Add types for DSP builtin + functions. + (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and + MIPS_BUILTIN_BPOSGE32. + (mips_expand_builtin_direct): Add one parameter to indicate that + builtin functions need to return a value. + (mips_expand_builtin_bposge): New for expanding "bposge" builtin + functions. + (mips_regno_to_class): Add classes for 12 new DSP registers. + (mips_subword): Change to check four HI registers. + (mips_output_move): Output move to and from 6 new DSP accumulators. + (override_options): Make sure -mdsp and -mips16 are not used together. + Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS. Enable DSP accumulators + for machine modes. + (mips_conditional_register_usage): Disable 6 new DSP accumulators + when !TARGET_DSP. + (print_operand): Add 'q' for printing DSP accumulators. + (mips_cannot_change_mode_class): Check ACC_REGS. + (mips_secondary_reload_class): Check ACC_REGS. + (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP. + (mips_register_move_cost): Check ACC_REGS. + (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph) + (CODE_FOR_mips_subu_qb): New code-aliasing macros. + (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros. + (dsp_bdesc): New array. + (bdesc_arrays): Add DSP builtin function table. + (mips_prepare_builtin_arg): Check predicate again after + copy_to_mode_reg. + (mips_expand_builtin): Add one more parameter to + mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and + MIPS_BUILTIN_BPOSGE32. + (mips_init_builtins): Initialize new function types. + (mips_expand_builtin_direct): Check if builtin functions need to + return a value and pass operands properly. + (mips_expand_builtin_bposge): New function. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp. + (ASM_SPEC): Map -mdsp to -mdsp in GAS. + (FIRST_PSEUDO_REGISTER): Increase to 188. + (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): + Update for 12 new DSP registers. + (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM) + (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM): + (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros. + (reg_class): Add DSP_ACC_REGS and ACC_REGS. + (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS. + (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS. + (REG_ALLOC_ORDER): Update for 12 new DSP registers. + (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS. + (UIMM6_OPERAND, IMM10_OPERAND): New macros. + (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints. + (REGISTER_NAMES): Add names for 12 new DSP registers. + * config/mips/mips.md: Include mips-dsp.md. + (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC) + (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S) + (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W) + (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR) + (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA) + (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR) + (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL) + (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R) + (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH) + (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL) + (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR) + (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH) + (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL) + (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR) + (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH) + (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB) + (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH) + (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H) + (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP) + (UNSPEC_RDDSP): New constants. + (*movdi_32bit): Change 'x' to 'a' for ACC_REGS. + (*movsi_internal): Change 'x' to 'a' for ACC_REGS. Add an + A<-d alternative. + * config/mips/mips.opt (-mdsp): New option. + * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand) + (reg_imm10_operand): New predicates. + * doc/extend.texi (MIPS DSP Built-in Functions): New section. + * doc/invoke.texi (-mdsp): Document new option. + +2005-07-22 DJ Delorie + + * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control + to warning calls. + * tree-inline.c (inlinable_function_p): Likewise. + +2005-07-22 Mark Mitchell + + PR debug/21828 + * toplev.c (check_global_declarations): Do not mark undefined + variables as DECL_IGNORED_P. + * varasm.c (first_global_object_name): GTY it. + (weak_global_object_name): Likewise. + (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating + a string to go into {weak,first}_global_object_name. + +2005-07-22 DJ Delorie + + * c-format.c (check_function_format): Change warning control + option from OPT_Wattribute to OPT_Wmissing_format_attribute. + +2005-07-22 Diego Novillo + + * tree-ssa-alias.c (count_ptr_derefs): Do not consider + &PTR->FLD a dereference of PTR. + * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD + a potential dereference of PTR. + +2005-07-22 J"orn Rennecke + + PR rtl-optimization/20370 + * ifcvt.c (dead_or_predicable): Before calling propagate_block, + call allocate_reg_info if necessary. + + PR rtl-optimization/21848 + * calls.c (emit_library_call_value_1): For const functions, add + USEs of the stack slots to CALL_INSN_FUNCTION_USAGE. + + PR rtl-optimization/22445 + * cselib.c (target.h): Include. + (rtx_equal_for_cselib_p): Allow commutative matches. + (cselib_hash_rtx): Don't use MODE for CONST_INT hashing. + Remove MODE parameter. Changed all callers. + + PR rtl-optimization/22258 + * combine.c (likely_spilled_retval_1, likely_spilled_retval_p): + New functions. + (try_combine): Use likely_spilled_retval_p. + +2005-07-22 Paul Woegerer + + * config.gcc: Add crx-elf support. + + * doc/contrib.texi: Mention crx. + * doc/extend.texi: Document crx extensions. + * doc/install.texi: Document crx install. + * doc/invoke.texi: Document crx options. + * doc/md.texi: Document crx constraints. + + * config/crx/crx-protos.h: New file. + * config/crx/crx.c: New file. + * config/crx/crx.h: New file. + * config/crx/crx.md: New file. + * config/crx/crx.opt: New file. + * config/crx/t-crx: New file. + +2005-07-22 Manfred Hollstein + + * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised + warnings. + (int_add_graph_edge): Likewise. + (collapse_nodes): Likewise. + (process_unification_queue): Likewise. + +2005-07-22 Richard Kenner + Laurent GUERBY + + PR tree-optimization/22336 + * function.c (record_block_change): Check for + cfun->ib_boundaries_block. + +2005-07-21 James A. Morrison + + * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs. + (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED. + +2005-07-21 DJ Delorie + + * toplev.c (warn_deprecated_use): Add warning control to warning + call. + * c-typeck.c (parser_build_binary_op): Likewise. + (c_finish_if_stmt): Likewise. + * c-common.c (check_function_sentinel): Likewise. + (check_nonnull_arg): Likewise. + +2005-07-21 Richard Henderson + + PR tree-opt/22504 + * tree-complex.c (complex_ssa_name_components): New. + (cvc_lookup): Allow entry not found. + (create_components): Remove. + (create_one_component_var, get_component_var): New. + (get_component_ssa_name, set_component_ssa_name): New. + (extract_component): Use get_component_ssa_name. + (update_complex_components): Use set_component_ssa_name. + (update_complex_components_on_edge): Likewise. + (update_phi_components): Create new PHI nodes directly, instead + of adding insns to edges. + (tree_lower_complex): Allocate and free complex_variable_components + and complex_ssa_name_components here. + +2005-07-20 Daniel Berlin + + * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT, + revert to returning false. + +2005-07-21 Uros Bizjak + + PR target/21149 + * config/i386/i386.md (sse_movhlps): Fix vec_select values. + +2005-07-21 Uros Bizjak + + PR target/22576 + * config/i386/i386.md (cmpxf): Change operand constraints + to "nonmemory_operand". + +2005-07-21 Andrew Pinski + + * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2. + +2005-07-21 Andrew Pinski + + PR middle-end/21180 + * fold-const.c (fold_build1): Add checksum for the operands. + (fold_build2): Likewise. + (fold_build3): Likewise. + +2005-07-21 Andrew Pinski + + PR middle-end/19055 + * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X". + +2005-07-21 Paolo Bonzini + + * common.opt (-fforward-propagate): Committed by mistake, + removed. + +2005-07-21 Volker Reichelt + + * reg-stack.c: Fix comment typo(s). + * tree-ssa-operands.c: Likewise. + * tree-vectorizer: Likewise. + +2005-07-21 Nick Clifton + + * config/sh/symbian.c: Replace C++ style line comments with C + style line comments. + (symbian_add_attribute): Do not use a ? operator on the LHS of + an assignment. + (sh_symbian_handle_dll_attribute): Change the type of the + method vector to "VEC(tree,gc)*" and use vector accessor + macros to walk over the elements. + (symbian_export_vtable_and_rtti_p): Likewise. + (symbian_class_needs_attribute_p): Likewise. + +2005-07-21 Paolo Bonzini + + PR target/22085 + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not + initialize targetm.resolve_overloaded_builtin here. + (altivec_expand_overloaded_builtin): Make it non-static. + * config/rs6000/rs6000-protos.h + (altivec_expand_overloaded_builtin): New prototype. + * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize + targetm.resolve_overloaded_builtin here. + * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise. + +2005-07-21 Paolo Bonzini + Zdenek Dvorak + + PR tree-optimization/19210 + * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations): + New. + * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o. + * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations, + rely on unproven assumptions. + * predict.c (predict_loops): Adjust call to number_of_iterations_exit. + * tree-flow.h (number_of_iterations_exit): Add final parameter. + * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call + to number_of_iterations_exit. + * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise. + * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise. + * tree-ssa-loop-niter.c (find_loop_niter, + estimate_numbers_of_iterations_loop): Likewise. + (number_of_iterations_exit): Honor the new options. + * doc/invoke.texi (Wunsafe-loop-optimizations, + funsafe-loop-optimizations): Document them. + +2005-07-21 Richard Sandiford + + PR rtl-optimization/22167 + * gcse.c (hoist_code): Fix hoist_exprs[] check. + +2005-07-20 Adam Nemet + + * config/rs6000/lynx.h: Mark __do_global_ctors_aux and + __do_global_dtors_aux longcall. + +2005-07-20 Kazu Hirata + + * gensupport.c (old_preds): Don't reference PREDICATE_CODES. + (old_special_pred_table): Don't reference + SPECIAL_MODE_PREDICATES. + * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison. + * config/arc/arc.h: Don't mention PREDICATE_CODES. + * config/sh/predicates.h: Don't mention + SPECIAL_MODE_PREDICATES. + * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): + Remove. + +2005-07-20 DJ Delorie + + * config.gcc: Add m32c-elf support. + + * doc/contrib.texi: Mention m32c. + * doc/extend.texi: Document m32c extensions. + * doc/install.texi: Mention m32c. + * doc/invoke.texi: Document m32c options. + * doc/md.texi: Document m32c constraints. + + * config/m32c/addsub.md: New file. + * config/m32c/bitops.md: New file. + * config/m32c/cond.md: New file. + * config/m32c/jump.md: New file. + * config/m32c/m32c-lib1.S: New file. + * config/m32c/m32c-lib2.c: New file. + * config/m32c/m32c-modes.def: New file. + * config/m32c/m32c-pragma.c: New file. + * config/m32c/m32c-protos.h: New file. + * config/m32c/m32c.abi: New file. + * config/m32c/m32c.c: New file. + * config/m32c/m32c.h: New file. + * config/m32c/m32c.md: New file. + * config/m32c/m32c.opt: New file. + * config/m32c/minmax.md: New file. + * config/m32c/mov.md: New file. + * config/m32c/muldiv.md: New file. + * config/m32c/predicates.md: New file. + * config/m32c/prologue.md: New file. + * config/m32c/shift.md: New file. + * config/m32c/t-m32c: New file. + +2005-07-20 Kaz Kojima + + * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. + (stack_protect_set, stack_protect_test): New expanders. + (stack_protect_set_si, stack_protect_set_si_media, + stack_protect_set_di_media, stack_protect_test_si, + stack_protect_test_si_media, stack_protect_test_di_media): + New insns. + +2005-07-20 Andrew Pinski + + * c-typeck.c (output_init_element): Don't copy the INTEGER_CST. + +2005-07-20 James A. Morrison + + * tree.h (tree_expr_nonzero_p): Export. + * fold-const.c (tree_expr_nonzero_p): Likewise. + Return true for CALL_EXPRs that are alloca calls. + (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs + against zero. + * tree-flow.h (expr_computes_nonzero): Remove. + * tree-vrp.c (expr_computes_nonzero): Remove. + (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p. + (extract_range_from_unary_expr): Likewise. + * tree-ssa-dom.c (record_equivalences_from_stmt): Use + tree_expr_nonzero_p. + +2005-07-20 Bernd Schmidt + + * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare. + * config/bfin/bfin.c (legitimize_pic_address): Now static. Take + extra arg "picreg" and use it instead of pic_offset_table_rtx. + All callers changed. + (frame_related_constant_load): New arg "related" which controls + setting of RTX_FRAME_RELATED_P. All callers changed. + (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue. + (bfin_expand_prologue): Add stack limit checking. + * config/bfin/bfin.md (trapifcc): New pattern. + + * config/bfin/bfin.c: Include "langhooks.h". + (def_builtin): Go through lang_hooks to call builtin_function. + + * config/bfin/bfin-protos.h (bfin_longcall_p): Declare. + * config/bfin/predicates.md (symbol_ref_operand): New. + (call_insn_operand): Delete. All callers changed to use + register_no_elim_operand. + * config/bfin/bfin.c (init_cumulative_args): Initialize the new + call_cookie field. + (function_arg): Use it to generate the call's operand 2. + (bfin_longcall_p): New function. + (bfin_expand_call): Extra arg "cookie". All callers and declaration + changed. Emit extra USE in the pattern. Use bfin_longcall_p to + determine if the address needs to be in a REG. + (bfin_handle_longcall_attribute): New function. + (bfin_attribute_table): Add "longcall" and "shortcall". + * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros. + (CUMULATIVE_ARGS): New member call_cookie. + (PREDICATE_CODES): Add symbol_ref_operand. + * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add + extra USE to the pattern. + (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol): + New patterns, split off call_insn, sibcall_insn, call_value_insn and + sibcall_value_insn; now the new patterns handle direct calls and the + old ones indirect calls. + * doc/extend.texi: Mention Blackfin in longcall/shortcall docs. + +2005-07-20 Zdenek Dvorak + + * doc/trouble.texi: Update section on handling of empty loops. + +2005-07-20 Kazu Hirata + + * config.gcc: Remove support for sparc-*-openbsd*, + i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*, + ns32k-*-netbsd*. + * config.host: Remove support for i860-*-sysv4* as a host. + * config/i860/*, config/ip2k/*, config/ns32k/*, + config/sparc/openbsd.h, config/sparc/t-openbsd: Remove. + * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't + mention obsolete ports. + +2005-07-20 Kaz Kojima + + * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for + soft frame pointer. + (sh_expand_prologue): Use hard_frame_pointer_rtx instead + of frame_pointer_rtx. + (sh_expand_epilogue): Likewise. + (sh_set_return_address): Likewise. + (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM + instead of FRAME_POINTER_REGNUM if needed. Add elimination + offsets from FRAME_POINTER_REGNUM. + * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp. + (sh_register_names): Add initializer for sfp. + (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM. + (VALID_REGISTER_P): Likewise. + (FIRST_PSEUDO_REGISTER): Update. + (DWARF_FRAME_REGISTERS): Define. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp. + (HARD_FRAME_POINTER_REGNUM): Define. + (FRAME_POINTER_REGNUM): Redefine. + (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM, + but HARD_FRAME_POINTER_REGNUM instead. Add eliminations + from FRAME_POINTER_REGNUM. + (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of + FRAME_POINTER_REGNUM. + (REG_CLASS_CONTENTS): Add sfp. + (REG_ALLOC_ORDER): Likewise. + (FRAME_GROWS_DOWNWARD): Set to 1. Update comment. + (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead + of frame_pointer_rtx. + (LEGITIMIZE_RELOAD_ADDRESS): Likewise. + +2005-07-19 James A. Morrison + + * fold-const.c (tree_expr_nonnegative_p): Only return true for + ABS_EXPR when flag_wrapv is false because of INT_MIN. + (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument + of an ABS_EXPR. + (fold_unary): Always fold ABS_EXPR> into + ABS_EXPR. + +2005-07-20 Giovanni Bajo + + Make CONSTRUCTOR use VEC to store initializers. + * c-common.c (complete_array_type): Update to cope with VEC in + CONSTRUCTOR_ELTS. + * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts. + (pp_c_constructor_elts): New function. + * c-pretty-print.h (pp_c_constructor_elts): Declare. + * c-typeck.c (build_function_call, build_c_cast, digest_init, + struct constructor_stack, struct initializer_stack, + constructor_elements, push_init_level, pop_init_level, + add_pending_init, find_init_member, output_init_element): Update to + cope with VEC in CONSTRUCTOR_ELTS. + * coverage.c (build_fn_info_value, build_ctr_info_value, + build_gcov_info): Likewise. + * expr.c (categorize_ctor_elements_1, store_constructor, + expand_expr_real_1): Likewise. + * fold-const.c (fold_ternary): Likewise. + * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl, + gimplify_init_constructor, gimplify_expr): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR + node. + * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in + CONSTRUCTOR_ELTS. + * tree-sra.c (generate_element_init_1): Likewise. + * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree-vect-generic.c (expand_vector_piecewise): Likewise. + * tree-vect-transform.c (vect_get_vec_def_for_operand): + (get_initial_def_for_reduction): Likewise. + * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses + value handle in annotations. + * tree.c (tree_node_kind, tree_code_size, make_node_stat, + tree_node_structure): Add support for constr_kind. + (build_vector_from_ctor, build_constructor_single, + build_constructor_from_list): New functions. + (build_constructor): Update to take a VEC instead of a TREE_LIST. + (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree): + Update to cope with VEC in CONSTRUCTOR_ELTS. + * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node. + * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT, + CONSTRUCTOR_APPEND_ELT): New macros. + (struct constructor_elt, struct tree_constructor): New data types. + (union tree_node): Add tree_constructor field. + * treestruct.def: Define TS_CONSTRUCTOR. + * varasm.c (const_hash_1, compare_constant, copy_constant, + compute_reloc_for_constant, output_addressed_constants, + initializer_constant_valid_p, output_constant, + array_size_for_constructor, output_constructor): Update to cope with + VEC in CONSTRUCTOR_ELTS. + * vec.h (VEC_empty, VEC_copy): New macros. + +2005-07-19 Devang Patel + + * dbxout.c (dbxout_type): Check Objective-C++ lang. + +2005-07-19 Richard Henderson + + PR tree-opt/22278 + * gimplify.c (gimplify_expr): Use main variant type for the temp + destination for a discarded volatile read. + * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide + casts between non-void types that change volatility. + +2005-07-15 DJ Delorie + + * toplev.h: Add comment about the first parameter for warning(). + * errors.h: Likewise. + + * c.opt (Wpragmas): New. + * doc/invoke.texi: Document it. + + * function.c (do_warn_unused_parameter): Add warning control to + warning call. + * c-decl.c (warn_if_shadowing): Likewise. + * c-lex.c (cb_def_pragma): Likewise. + * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise. + (pop_alignment): Likewise. + (handle_pragma_pack): Likewise. + (apply_pragma_weak): Likewise. + (handle_pragma_weak): Likewise. + (handle_pragma_redefine_extname): Likewise. + (add_to_renaming_pragma_list): Likewise. + (handle_pragma_extern_prefix): Likewise. + (maybe_apply_renaming_pragma): Likewise. + (handle_pragma_visibility): Likewise. + + * config/c4x/c4x-c.c (BAD): Likewise. + (c4x_parse_pragma): Likewise. + * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise. + * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise. + (rs6000_pragma_longcall): Likewise. + * config/v850/v850-c.c (pop_data_area): Likewise. + (ghs_pragma_section): Likewise. + (ghs_pragma_section): Likewise. + (ghs_pragma_interrupt): Likewise. + (ghs_pragma_starttda): Likewise. + (ghs_pragma_startsda): Likewise. + (ghs_pragma_startzda): Likewise. + (ghs_pragma_endtda): Likewise. + (ghs_pragma_endsda): Likewise. + (ghs_pragma_endzda): Likewise. + +2005-07-19 Danny Berlin + Kenneth Zadeck + + * Makefile.in: Removed tree-promote-statics.c + * tree-promote-statics.c: Removed. + * common.opt: Removed flag-promote-statics. + * opts.c: Ditto. + * passes.c: Removed tree-promote-statics pass. + * tree-pass.h: Ditto. + * timevar.def: Removed TV_PROMOTE_STATICS. + + 2005-07-19 Gerald Pfeifer * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8, @@ -24,6 +765,11 @@ * config/i386/i386.md (lrint2): Use temporary instead of clobbering non-existent memory. +2005-07-19 Nick Clifton + + * config/avr/avr.c (legitimate_address_p): Fix debugging print + statement to avoid displaying ASCII control characters. + 2005-07-19 Ben Elliston * bt-load.c (link_btr_uses): Fix uninitialised warnings.