2005-08-07 Danny Smith * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define. (COMMON_ASM_OP) Define. * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED (ix86_encode_section_info): Likewise. (TARGET_ENCODE_SECTION_INFO): Conditionally define as SUBTARGET_ENCODE_SECTION_INFO. 2005-08-06 Richard Henderson PR 21894 * tree-nested.c (convert_local_reference): Save and restore val_only around component_ref and friends. Clear walk_subtrees by default. 2005-08-06 Peter O'Gorman PR 21366 * gcc.c (process_command): Check the argument to -b has a dash. * doc/invoke.texi: Update -b and -V docs. 2005-08-06 James E Wilson * config/mips/cross64.h, config/mips/t-cross64: Delete. 2005-08-06 Michael Matz * genattrtab.c (write_attr_get, write_attr_case): Use insn_code member only if only one insn is associated with the value. 2005-08-06 Nick Clifton * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100): New define. (ASM_OUTPUT_LABELREF): Delete - it is no longer needed. * config/stormy16/stormy16.c (xstormy16_below100_symbol): Check symbol flags instead of symbol name mangling. (xstormy16_asm_output_aligned_common): Likewise. Also simplify code since the bss100_section cass is the only case where the below100 code will be triggered. (xstormy16_encode_section_info): Encode below100 attribute using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling the name. (xstormy16_strip_name_encoding): Delete - this function is no longer needed. (TARGET_STRIP_NAME_ENCODING): Undefine. * config/stormy16/stormy16-protos.h: Delete prototype for xstormy16_strip_name_encoding. 2005-08-06 Kazu Hirata * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c, config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c, tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h, config/linux.h, config/alpha/alpha.h, config/alpha/linux.h, config/alpha/predicates.md, config/arc/arc.h, config/arm/arm.h, config/arm/ieee754-df.S, config/arm/ieee754-sf.S, config/bfin/bfin.c, config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c, config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/mips/mips.c, config/mips/mips.h, config/mips/openbsd.h, config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.h, config/rs6000/linux-unwind.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h, config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h, doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc typos. Follow spelling conventions. 2005-08-06 Joseph S. Myers PR c/23113 * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start. Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR specially. Check for side effects only for COND_EXPR. * c-typeck.c (c_finish_stmt_expr): Mark statement expression return with TREE_NO_WARNING. 2005-08-06 Richard Sandiford PR rtl-optimization/23233 * loop.c (combine_movables): Require the modes to be the same. (move_movables): Remove handling of cases where the replacement had a different mode to the original. 2005-08-05 James A. Morrison PR tree-optimization/23128 * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or subtraction wrap, and set TREE_OVERFLOW if they do. 2005-08-05 Richard Henderson PR 21728 * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into FORCED_LABEL labels. 2005-08-05 J"orn Rennecke PR middle-end/23135 * reload.c (find_reloads_subreg_address): Pass down TYPE unchanged. Change all callers except find_reloads_toplev. 2005-08-05 Michael Matz * genattrtab.c (current_alternative_string): Remove. (SIMPLIFY_ALTERNATIVE): Ditto. (attr_alt_bit_p): Ditto. (alternative_name): Make const char *. (evaluate_eq_attr): Remove use of above things. (simplify_test_exp): Ditto. (simplify_test_exp ): Guard for insn_code < 0 . (simplify_test_exp ): Correct typo (test 'right' not 'left'). 2005-08-04 James E Wilson * config/ptx4.h, config/sol2.h, config/arm/freebsd.h, config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h, config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h, config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h (LINK_SPEC): Delete useless %{Wl,*:%*} item. 2005-08-04 Richard Henderson PR 21529 * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New. * params.h (SRA_MAX_STRUCTURE_COUNT): New. * tree-sra.c (decide_block_copy): Use it. Disable element copy if we'd have to instantiate too many members. 2005-08-04 Richard Henderson PR 21291 * tree-outof-ssa.c (coalesce_asm_operands): New. (coalesce_ssa_name): Use it. Split out ... (coalesce_phi_operands, coalesce_result_decls): ... these. 2005-08-04 Paul Brook * read-rtl.c (read_quoted_string): Break if EOF. 2005-08-04 Andrew Pinski * tree.h (fold_build1): Change to macro and call fold_build1_stat. (fold_build2): Likewise. (fold_build3): Likewise. (fold_build1_stat): New function prototype. (fold_build2_stat): Likewise. (fold_build3_stat): Likewise. * fold-const.c (fold_build1): Rename to .. (fold_build1_stat): this. Add MEM_STAT_DECL. Pass the mem stats through to build1_stat. (fold_build2): Rename to .. (fold_build2_stat): this. Add MEM_STAT_DECL. Pass the mem stats through to build2_stat. (fold_build3): Rename to .. (fold_build3_stat): this. Add MEM_STAT_DECL. Pass the mem stats through to build3_stat. 2005-08-04 David Edelsohn Ian Lance Taylor * function.c (assign_stack_local_1): Do not correct stack slot address if allocation size is smaller than mode size. 2005-08-04 Diego Novillo PR 22037 * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename. (tree_merge_blocks): Propagate anything allowed by may_propagate_copy. Clarify documentation. * passes.c (execute_todo): If cleanup_tree_cfg invalidated the SSA form, schedule an update if necessary. 2005-08-04 Gerald Pfeifer * doc/install.texi (Binaries): Remove broken link to Sinix/Reliant Unix binaries. 2005-08-03 Richard Henderson PR 23221 * function.c (stack_protect_epilogue): Export. * tree.h (stack_protect_epilogue): Declare. * calls.c (expand_call): Call it. 2005-08-03 Eric Christopher * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all. * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp spec. 2005-08-04 Jan Hubicka * profile.c (branch_prob): Split edges with goto locus on them to get proper line counts. * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any. 2005-08-03 Paul Brook * function.c (assign_parms): Round current_function_args_size to PARM_BOUNDARY, not STACK_BOUNDARY. 2005-08-03 Geoffrey Keating * config/i386/i386.c (x86_elf_aligned_common) (x86_output_aligned_bss): Don't try to use symbols that aren't defined. 2005-08-03 Zdenek Dvorak PR tree-optimization/23157 * tree-scalar-evolution.c (scev_const_prop): Unshare trees before emitting them. 2005-08-03 Volker Reichelt PR tree-optimization/19899 * Makefile.in (tree-scalar-evolution.o): Add real.h. * tree-scalar-evolution.c: Include real.h. (add_to_evolution): Build constant -1 of correct type. 2005-08-03 Jan Hubicka * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag. * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case profile updating for complette unrolling. * loop-unroll.c (peel_loop_completely): Use it. * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. (tree_unroll_loops_completely): Disable code growing unrolling of cold loops. 2005-08-03 Paul Brook * combine.c (can_change_dest_mode): New function. (try_combine, simplify_set): Use it. 2005-08-03 Eric Botcazou * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force TFmode to BLKmode. 2005-08-03 Gerald Pfeifer * doc/install.texi (Specific): Adjust link to openavr.org. (Specific): Remove broken reference to GCC 2.8.1 for OS/2. (Binaries): Adjust HP-UX Porting Center link. (Binaries): Adjust Free Software Foundation ordering link. 2005-08-03 Andrew Pinski * convert.c (convert_to_integer): Use fold_build1 instead of build1 when converting an integer to an integer. 2005-08-02 Richard Henderson * combine.c (combine_instructions): Don't use reg_equal/equiv results if the mode doesn't match. 2005-08-02 Mark Mitchell * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it. * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it. 2005-08-02 Richard Henderson PR 23196 * explow.c (memory_address): Remove special-case for virtual_stack_vars_rtx and virtual_incoming_args_rtx. 2005-08-02 Diego Novillo PR 23164 * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the number of calls to cleanup_tree_cfg_1. 2005-08-02 Martin Reinecke * doc/invoke.texi: document file extensions .F90 and .F95 2005-08-02 Richard Guenther * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is positive if its first argument is positive. 2005-08-02 Richard Guenther PR tree-optimization/23177 * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands on TMR_TAG. 2005-08-02 James A. Morrison PR tree-optimization/23129 * tree-vrp.c (extract_range_from_binary_expr): Set value range to varying for divisions with anti-ranges. 2005-08-02 Jan Hubicka * tree-ssa-dom.c (thread_across_edge): Remove updating here. * tree-ssa-threadupdate.c (thread_block): Add it here. 2005-08-01 James E Wilson * config/mips/mips.c (mips_encode_section_info, mips_attribute_table, TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New. * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P): New. * config/mips/predicates.md (const_call_insn_operand): Add check for SYMBOL_REF_LONG_CALL_P. * doc/extend.texi (long_call): Document the new attribute. 2005-08-01 Ian Lance Taylor Richard Henderson * Makefile.in (RTL_BASE_H): Add real.h. * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy instead of memcpy. * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv directly. * rtl.c (rtl_check_failed_code_mode): New. * rtl.h (struct rtx_def): Add u.rv. (XCMWINT, XCNMPRV): New. (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT. (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify. 2005-08-01 Richard Henderson * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG, with auto-inc codes. * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE. 2005-08-01 Jan Hubicka * i386-protos.h (asm_preferred_eh_data_format): Declare. * i386.c: Include dwarf2.h (asm_preferred_eh_data_format): New. * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline. 2005-08-01 Ian Lance Taylor * config/host-linux.c (linux_gt_pch_get_address): Add new name randomize_va_space for virtual address randomization control. 2005-08-01 Steven Bosscher * common.opt (flag_ipa_cp): Put in right place to maintain alphabetic sort. 2005-08-01 Jan Hubicka * profile.c (compute_value_histograms): Fix thinko. * value-prof.c: Include toplev.h (check_counter): New function. (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform, tree_mod_subtract_transform): Add sanity check. 2005-08-01 Richard Guenther PR tree-optimization/23133 * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk current functions parameter decls to find defs to cse reciprocals of. 2005-08-01 Richard Guenther PR tree-optimization/23109 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): If trapping math is in effect, use post-dominator information to check if we'd in any case reach a trapping point before doing the reciprocal insertion. (execute_cse_reciprocals): Compute post-dominators, if necessary. * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV expressions are invariant only if trapping math is not in effect. 2005-08-01 Razya Ladelsky * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning, cgraph_function_versioning): New declarations. * cgraphunit.c: Add include to ipa-prop.h. (update_call_expr, cgraph_copy_node_for_versioning, cgraph_function_versioning): New functions. * integrate.c (copy_decl_for_inlining): Remove. * ipa-prop.h (ipa_replace_map): New struct. (struct ipa_node): Add ipcp_orig_node, count_scale, new fields. * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned, ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale, ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate, ipcp_iterate_stage, ipcp_method_scale_print, ipcp_profile_mt_count_print, ipcp_profile_cs_count_print, ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print, ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph, ipcp_update_bb_counts, ipcp_update_profiling, ipcp_update_edges_counts): New functions. (ipcp_method_cval_init): Remove restriction regarding local methods. (ipcp_init_stage): Add ipcp_method_compute_scale. (ipcp_insert_stage): Add versioning. (ipcp_structures_print): Add ipcp_method_scale_print. (ipcp_driver): Dump profiling info. * Makefile.in: Remove integrate.h dependency from tree-inline.o. Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o. * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h. (struct inline_data): Add versioning_p, ipa_info, new fields. (remap_decl, mark_local_for_remap_r, setup_one_parameter, declare_return_variable): Replace calls to copy_decl_for_inlining with copy_decl_for_dup. (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add versioning support. (copy_decl_for_dup): Rename from copy_decl_for_inlining. Add argument VERSIONING. (copy_arguments_for_versioning, copy_static_chain, function_versionable_p, tree_versionable_function_p, tree_function_versioning, replace_ref_tree): New functions. * tree-inline.h: Include varray.h. (tree_versionable_function_p, tree_function_versioning, tree copy_decl_for_dup): New declarations. 2005-08-01 Razya Ladelsky * ipa-cp.c: New file. Contains IPCP specific functionality. * ipa-prop.h: New file. Contains structures/definitions that can be used by several interprocedural data flow optimizations (and also IPCP). * ipa-prop.c: New file. * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c. * common.opt: Add ipa-cp flag. * timevar.def: Add IPCP optimization. * tree-optimize.c (init_tree_optimization_passes): Schedule pass_ipa_cp. * tree-pass.h (pass_ipa_cp): Declare. 2005-08-01 Kazu Hirata * dwarf2out.c, fold-const.c, ipa-type-escape.c, loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c, tree-sra.c, config/arm/arm.c, config/crx/crx.c, config/i386/i386.c, config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.c, config/stormy16/stormy16.c: Fix comment typos. 2005-08-01 Joseph S. Myers PR c/22311 * c-typeck.c (build_binary_op): Use common_type wrapper on shortened types. (common_type): Update comment. 2005-07-31 Steven Bosscher PR target/23095 * common.opt (flag_gcse_after_reload): Don't initialize to 2. (flag_rerun_cse_after_loop): Initialize this to 2 instead. * postreload-gcse.c (hash_scan_set): Do not consider stack regs. 2005-07-31 Jan Hubicka * pretty-print.h (pp_widest_integer): New macro. * tree-pretty-print.c (dump_bb_header): Print BB frequencies and counts. 2005-07-31 Jan Hubicka * output.h (enum section_category): Export from varasm.c (categorize_decl_for_section): Likewise. * varasm.c (enum section_category): Kill. (categorize_decl_for_section): Make global. * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common): Declare. * i386.c (ix86_section_threshold): New static variable. (ix86_in_large_data_p, ix86_encode_section_info, x86_64_elf_unique_section, x86_64_elf_select_section): New functions. (TARGET_ENCODE_SECTION_INFO): Define (override_options): Enable medium model for PIC. (ix86_expand_prologue): Expand gen_set_got_rex64. (legitimate_constant_p): Handle new UNSPECs. (legitimate_pic_address_disp_p): Likewise. (legitimize_pic_address): Lower MEDIUM model addressing. * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC. (enum cmodel): Add MEDIUM_PIC. (SYMBOL_REF_FAR_ADDR_P): New macro. (SYMBOL_FLAG_FAR_ADDR): New flag. * i386.md (movdi): Support medium model. (set_got_rex64): New pattern. * i386.opt (mlarge-data-threshold): New flag. * predicates.md (zext_operand/sext_operand): Deal with medium model. * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss. (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. * invoke.texi (-mlarge_data_threshold): Document 2005-07-31 Jan Hubicka * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost. (coalesce_vars): Likewise. * tree-ssa-live.c (coalesce_cost): New. (build_tree_conflict_graph): Use coalesce_cost. * tree-ssa-live.h (coalesce_cost): Declare. 2005-07-30 Richard Earnshaw * arm.md (all peepholes for post-increment operations): Delete. (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec) (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec) (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec) (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc) (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete. 2005-07-30 James A. Morrison * fold-const.c (tree_expr_nonnegative_p): Always return true for non-integral types. 2005-07-29 Wolfgang Bangerth PR target/22582 * doc/invoke.texi: Document -rdynamic. 2005-07-30 Joseph S. Myers PR c/23143 * c-parser.c (c_parser_parms_list_declarator): Call mark_forward_parm_decls. * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for decls with visibility structure. 2005-07-30 Paul Brook * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment. 2005-07-30 Paul Brook * config/arm/arm-protos.h (arm_canonicalize_comparison): Update prototype. * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit value for mode. * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument. 2005-07-29 Joseph S. Myers PR c/529 * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in nested function declarators. (pushdecl): Don't call warn_if_shadowing for PARM_DECL. (grokparms): Call warn_if_shadowing for parameters used within the parameter list. (store_parm_decls_newstyle): Call warn_if_shadowing for parameters not used within the parameter list. (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters. 2005-07-30 Jan Hubicka * expr.c (expand_expr_real_1): Do not load mem targets into register. * i386.c (ix86_fixup_binary_operands): Likewise. (ix86_expand_unary_operator): Likewise. (ix86_expand_fp_absneg_operator): Likewise. * optabs.c (expand_vec_cond_expr): Validate dest. 2005-07-29 Joseph S. Myers PR c/21720 * real.c (real_from_string): Also set last bit if there is a nonzero hex digit beyond GCC's internal precision after ".". 2005-07-29 David Edelsohn * config/rs6000/altivec.md: Convert UNSPEC numerical values to define_constants. Change duplicate values to unassigned numbers. Change UNSPEC_SUBS to UNSPEC_VSUBS. (*altivec_vspltsf): New. (altivec_vperm_v4sf): Delete. (altivec_vperm_): Use mode macro V. (altivec_vsldoi_): Convert to mode macro pattern. (altivec_predicate_v4sf): Delete. (altivec_predicate_): Use mode macro V. (*altivec_lvesfx): New. (*altivec_stvesfx): New. (vec_realign_load_v4sf): Delete. (vec_realign_load_): Use mode macro V. * config/rs6000/rs6000.c (generate_set_vrsave): Use UNSPECV_SET_VRSAVE. 2005-07-29 Mark Mitchell PR bootstrap/23131 * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty string. * configure: Regenerated. 2005-07-29 Paul Brook * doc/install.texi: Add link to GFortran binaries wiki page. 2005-07-29 David Ung * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table. (mips_rtx_cost_data): Add costs for 5kc and 5kf. * config/mips/mips.h (processor_type): Add PROCESSOR_5KF. * config/mips/mips.md (cpu): Add 5kf name. (includes): Includes 5k.md. * config/mips/5k.md: New DFA pipeline for the 5kc/5kf. * doc/invoke.texi (MIPS Options): Updated cpu name supported with -march flag. 2005-07-29 Diego Novillo PR 22550 * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ... (cleanup_tree_cfg): ... here. Call cleanup_tree_cfg_1 until there are no more cleanups to do. 2005-07-29 James A. Morrison * tree-vrp.c (compare_range_with_value): Return true or false for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and EQ_EXPR respectively. 2005-07-29 Kazu Hirata * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c: Fix comment typos. 2005-07-29 Diego Novillo * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations. (tree_ssa_dominator_optimize): Increment it. (dump_dominator_optimization_stats): Print it. 2005-07-29 Richard Earnshaw Steven Bosscher PR rtl-optimization/23117 * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly when head == tail. Tidy comment. 2005-07-28 Richard Henderson * cse.c (exp_equiv_p): Special case CONST_DOUBLE. * cselib.c (rtx_equal_for_cselib_p): Likewise. * jump.c (rtx_renumbered_equal_p): Likewise. * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0, CONST_INT and CONST_DOUBLE. (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF. * reload.c (operands_match_p): Special case CONST_INT and CONST_DOUBLE; check mode earlier. 2005-07-29 Joseph S. Myers PR c/22240 * c-typeck.c (convert_for_assignment): Do not check DECL_IN_SYSTEM_HEADER on NULL fundecl. 2005-07-29 Joseph S. Myers PR c/22192 * c-typeck.c (composite_type): Prefer constant size arrays to VLAs. 2005-07-29 Joseph S. Myers PR c/21720 * real.c (real_from_string): Set last bit if there is a nonzero hex digit beyond GCC's internal precision. 2005-07-28 Richard Henderson PR rtl-opt/22619 * cfgcleanup.c (try_forward_edges): Watch out for end of insn chain. 2005-07-28 James E Wilson PR c/23106 * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording. 2005-07-28 Jan Hubicka * Makefile.in (rtl-profile.o): Kill all traces of it. * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill. * coverage.h (rtl_coverage_counter_ref): Kill. * opts.c (flag_speculative_prefetching_set): Kill. (flag_loop_optimize_set): New. (common_handle_option): Disable loop optimizer when profiling; do not handle speculative prefetching. * passes.c (init_optimization_passes): Replace pass_profiling combo by branch_prob pass. * profile.c (compute_value_histograms): Update for simplified value profiles. (rtl_register_profile_hooks): Kill. (pass_profiling): Kill. (rest_of_handle_branch_prob): Do not profile. * toplev.c (process_options): Remove speculative prefetching. * toplev.h (flag_tree_based_profiling): Kill. * tree-profile.c (prepare_instrumented_value, tree_gen_interval_profiler, tree_gen_pow2_profiler, tree_gen_one_value_profiler, do_tree_profiling): Update for simplified datastructures. * value-prof.c: Add comment that speculative prefetching was dropped; update rest of file for simplified datastructures. (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX, rtl_divmod_values_to_profile, insn_prefetch_values_to_profile, find_mem_reference_1, find_mem_reference_2, find_mem_reference, rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2, rtl_mod_subtract, gen_speculative_prefetch, rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform, rtl_mod_subtract_transform, speculative_prefetching_transform): Kill. (gate_handle_value_profile_transformations, rest_of_handle_value_profile_transformations, pass_value_profile_transformations): Kill. * value-prof.h (histogram_value_t): Remove IL based unions. (rtl_register_value_prof_hooks, rtl_register_profile_hooks, rtl_profile_hooks): Remove hooks. * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill. * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument. (cgraph_clone_node): Likewise. * cgraph.h (cgraph_clone_edge): Update prototype. (cgraph_clone_node): Likewise. * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of cgraph_clone_node. (lookup_recursive_calls): Consider profile. (cgraph_decide_recursive_inlining): Fix updating; use new probability argument; use profile. * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New. * tree-inline.c (copy_bb): Update clal of clone_edge. * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node. * invoke.texi (min-inline-recursive-probability): Document. 2005-07-28 Gerald Pfeifer * doc/install.texi (Configuration): Update Valgrind homepage. 2005-07-28 Richard Henderson PR middle-end/21362 * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on labels we want to delete. (cfg_layout_merge_blocks): Likewise. 2005-07-28 Richard Henderson PR target/17692 * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note when expanding to nothing. 2005-07-28 Josh Conner * ipa-inline.c (update_caller_keys): Fix estimated_growth caching. (cgraph_decide_inlining_of_small_functions): Likewise. 2005-07-28 Josh Conner * ipa-inline.c (cgraph_edge_badness): Update comments. Invert shift direction of badness if negative. (cgraph_default_inline_p): Add reason to parameters, and assign it a value. (cgraph_decide_inlining_of_small_functions): New parameter in call to cgraph_default_inline_p. (cgraph_decide_inlining_incrementally): Likewise. * cgraphunit.c (decide_is_function_needed): Likewise. * cgraph.h (cgraph_default_inline_p): Likewise. 2005-07-28 Volker Reichelt * builtins.c: Fix comment typo(s). * genautomata.c: Likewise. * gimplify.c: Likewise. * tree-dfa.c: Likewise. * tree-flow-inline.h: Likewise. * tree-into-ssa.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-tailcall.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. 2005-07-28 Jeff Law * tree-vrp.c (test_for_singularity): Extracted from ... (simplify_cond_using_ranges): Attempt to simplify a relational test to NE_EXPR. Dump information when a COND_EXPR is simplified. 2005-07-28 Dorit Nuzman PR tree-optimization/22506 * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed phis whose argument is constant. 2005-07-28 J"orn Rennecke PR rtl-optimization/18992 Back out this patch: 2003-10-08 John David Anglin PR optimization/12142 * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the uses of the register in the SET_SRC. Remove unnecessary argument. Replace it with this: * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases, if flag_non_call_exceptions is set and the insn may trap, pass pc_rtx as dest for recursion. In SET_SRC part of SET case, if dest is already set, pass it down unchanged. 2005-07-28 Jan Hubicka * cfg.c (update_bb_profile_for_threading): Use RDIV. (scale_bbs_frequencies_int): Likewise, assert for possible overflow. (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and roundoff errors. * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating profile when available. 2005-07-28 Jan Beulich * config/ia64/ia64.c (ia64_load_pair_ok): New. (ia64_print_operand): Describe and handle 'X'. (ia64_register_move_cost): Also handle FP_REGS. (ia64_preferred_reload_class): Likewise. (ia64_secondary_reload_class): Likewise. (ia64_dependencies_evaluation_hook): New local variable c. Initialize it. Also check for ITANIUM_CLASS_FLDP. * config/ia64/ia64.h (FP_REGNO_P): New. (HARD_REGNO_MODE_OK): Remove explusion of TImode. (reg_class): Add FP_REGS. (REG_CLASS_NAMES): Adjust for it. (REG_CLASS_CONTENTS): Likewise. (REGNO_REG_CLASS): Use FP_REGS where appropriate. (REG_CLASS_FROM_LETTER): Handle 'x'. (CLASS_MAX_NREGS): Handle FP_REGS. (MEMORY_MOVE_COST): Likewise. * config/ia64/ia64.md (itanium_class): Add fldp. (type): Handle fldp. (movti_internal): More allowable operand combinations. Use ldfp8 when splitting unnecessary. Remove predicable attribute. Adjust itanium_class attribute. (smuldi3_highpart): Remove outdated comment. (mulditi3, umulditi3, rotlti3): New expanders. (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns. (absti2): Disabled new insn for future reference. Respective new splitters. * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations. * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise. * config/ia64/ia64-protos.h (ia64_load_pair_ok): New. 2005-07-25 James A. Morrison PR rtl-optimization/23047 * simplify-rtx.c (simplify_const_relational_operation): Respect flag_wrapv for comparisons with ABS. 2005-07-27 James A. Morrison PR tree-optimization/22493 * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs. 2005-07-27 Aldy Hernandez * config/frv/frv.opt (moptimize-membar): New. * doc/invoke.texi: Document -moptimize-membar and its inverse. * config/frv/frv.h: Remove machine_function definition. * config/frv/frv.c (struct frv_io): New. (struct machine_function): Moved from frv.h. Add has_membar_p. (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union) (frv_extract_membar, frv_io_check_address, frv_io_handle_set) (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local) (frv_optimize_membar_global, frv_optimize_membar): New functions. (frv_reorg): Call frv_optimize_membar when appropriate. (bdesc_loads, bdesc_stores): Use the membar code as the icode field. (frv_expand_builtin): Adjust calls accordingly. (frv_io_address_cookie): New function. (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal load or store rather than a special insn. Add ccnstant address and io-type operands to the membar. (frv_ifcvt_modify_tests): Unsign regno. (frv_ifcvt_modify_tests): Same. * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}. Change UNSPEC_OPTIONAL_MEMBAR constant. (builtin_read_): Delete. (builtin_write_): Delete. ("optional_membar_"): Add operand. * testsuite/gcc.target/frv/all-builtin-read8.c: Delete. * testsuite/gcc.target/frv/all-builtin-read16.c: Delete. * testsuite/gcc.target/frv/all-builtin-read32.c: Delete. * testsuite/gcc.target/frv/all-builtin-read64.c: Delete. * testsuite/gcc.target/frv/all-builtin-write8.c: Delete. * testsuite/gcc.target/frv/all-builtin-write16.c: Delete. * testsuite/gcc.target/frv/all-builtin-write32.c: Delete. * testsuite/gcc.target/frv/all-builtin-write64.c: Delete. * testsuite/gcc.target/frv/all-read-write-1.c: New. 2005-07-28 Kaz Kojima * df.c (df_uses_record): Handle SCRATCH. 2005-07-28 Steven Bosscher PR debug/20161 * passes.c (rest_of_decl_compilation): If decl is a type and we have encountered errors, don't emit debug information. 2005-07-27 Kenneth Zadeck * params.def: Fixed comment. 2005-07-27 Bjoern Haase PR target/19885 * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add. (TARGET_ASM_UNALIGNED_HI_OP): Add. (TARGET_ASM_UNALIGNED_SI_OP): Add. 2005-07-27 Steven Bosscher PR c++/22003 * varasm.c (assemble_start_function): Don't do anything that may require a CFG if the current function is a thunk. 2005-07-25 Geoffrey Keating * doc/install.texi (Prerequisites): Mention that perl is needed to do export control in libstdc++ targetting Darwin. 2005-07-27 Steven Bosscher PR rtl-optimization/17808 * sched-deps.c (sched_get_condition): Enable #if 0'ed code. (sched_insns_conditions_mutex_p): Split out from... (add_dependence): ...here. But don't call it from here. (add_dependence_list): Check sched_insns_conditions_mutex_p before calling add_dependence. (add_dependence_list_and_free): Likewise. (fixup_sched_groups): Likewise. (sched_analyze_1): Likewise. (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE). (sched_analyze): Likewise. (sched_analyze_insn): Likewise. * sched-ebb.c (add_deps_for_risky_insns): Likewise. * sched-rgn.c (add_branch_dependences): Likewise. Also, add dependencies on all COND_EXEC insns to jumps ending basic blocks when doing intrablock scheduling. * sched-int.h (sched_insns_conditions_mutex_p): Add prototype. 2005-07-27 Jeff Law * tree-vrp.c (vrp_meet): Intersect the equivalency sets when meeting a VR_ANTI_RANGE with a VR_RANGE. When intersecting equivalency sets, correctly handle the case were vr0 has an equivalency set, but vr1 does not. 2005-07-27 Dorit Nuzman PR tree-optimization/23073 * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call vect_print_dump_info before fprintf. 2005-07-27 Zdenek Dvorak PR tree-optimize/22348 * tree-ssa-loop-niter.c (number_of_iterations_cond): Fold the partial computation. 2005-07-27 Zdenek Dvorak PR tree-optimization/22325 * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost): Declare. * tree-scalar-evolution.c (scev_const_prop): Add generic final value replacement. * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ... (force_var_cost): ... this function. (compute_phi_arg_on_exit): Export. 2005-07-27 Zdenek Dvorak PR tree-optimization/20773 * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch edge. 2005-07-27 Richard Guenther * tree-ssa-structalias.c (push_fields_onto_fieldstack): Avoid pushing again if current struct contains only fields we decomposed. 2005-07-27 Jan Hubicka PR tree-optimization/22574 * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are not available. * tree-tailcall.c (decrease_profile): New function. (eliminate_tail_call): Use it. * cgraphunit.c (cgraph_function_and_variable_visibility): Set visibility flags correctly in whole program mode. 2005-07-26 Steve Ellcey PR rtl-optimization/22472 * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define. 2005-07-26 Steven Bosscher PR tree-optimization/22504 * tree-complex.c (expand_complex_addition): Use 'code' instead of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING). 2005-07-26 Aldy Hernandez * config.gcc (cpu_type): Add frv case. (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases. (supported_defaults): Add fr550 case. 2005-07-26 Diego Novillo PR 22591 * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests whether a pointer of type T * may point to objects of type T *. 2005-07-26 DJ Delorie * configure: Regenerate. 2005-07-26 Dale Johannesen * postreload-gcse.c (alloc_mem): Start CUID numbering at 1. 2005-07-26 Mark Mitchell * doc/install.texi (--with-build-sysroot): Fix grammatical error. Clarify use of "build" in name. 2005-07-26 Aldy Hernandez * doc/extend.texi (Raw read/write Functions): New section. * testsuite/gcc.target/frv/all-builtin-read8.c: New. * testsuite/gcc.target/frv/all-builtin-read16.c: New. * testsuite/gcc.target/frv/all-builtin-read32.c: New. * testsuite/gcc.target/frv/all-builtin-read64.c: New. * testsuite/gcc.target/frv/all-builtin-write8.c: New. * testsuite/gcc.target/frv/all-builtin-write16.c: New. * testsuite/gcc.target/frv/all-builtin-write32.c: New. * testsuite/gcc.target/frv/all-builtin-write64.c: New. * config/frv/frv.c: Add bdesc_loads global. Add bdesc_stores global. (frv_init_builtins): Add support for __builtin_{read/write}*. (frv_volatile_memref): New. (frv_expand_load_builtin): New. (frv_expand_store_builtin): New. * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN, FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32, FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16, FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64. * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD, UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR. (builtin_read_): New. (builtin_write_): New. (builtin_write64): New. (optional_membar_): New. 2005-07-26 J"orn Rennecke * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits (rather than units) against HOST_BITS_PER_WIDE_INT. 2005-07-26 Kazu Hirata * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c, ipa-utils.h, treestruct.def, config/crx/crx-protos.h, config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update FSF address. * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c, tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h, config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix comment typos. * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos. 2005-07-26 Richard Guenther PR tree-optimization/22486 * fold-const.c (fold_unary): Fold away useless component references of the form (T *)&T.x, if the address doesn't change. 2005-07-25 James E Wilson * dwarf2out.c (add_call_src_coords_attributes): New. (gen_inlined_subroutine_die): Call it. (maybe_emit_file, init_file_table): Add comments. (prune_unused_types_walk_attribs): Pass DW_AT_call_file through maybe_emit_file. * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION. (expand_call_inline): Set BLOCK_SOURCE_LOCATION. * tree.h (BLOCK_SOURCE_LOCATION): New. (struct tree_block): New field locus. 2005-07-26 Andreas Schwab PR rtl-optimization/23043 * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo when allocating a struct unoccr. 2005-07-25 Richard Henderson PR 22626 * tree-complex.c (gate_no_optimization): True if errors. * Makefile.in (tree-complex.o): Update dependencies. 2005-07-25 Aldy Hernandez * config/frv/predicates.md (integer_register_operand): Use GPR_AP_OR_PSEUDO_P. 2005-07-25 Andrew Pinski PR tree-opt/22484 * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions after fold. * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands. 2005-07-25 Andrew Pinski * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point types when flag_unsafe_math_optimizations is true. 2005-07-25 Mark Mitchell * gcc.c (option_map): Add --sysroot. (process_command): Handle --sysroot. (display_help): Document it. * doc/cppopts.tex (-isysroot): Document. * doc/invoke.texi (--sysroot): Document. * doc/install.texi (--with-build-sysroot): Document. * Makefile.in (inhibit_libc): New variable. (INHIBIT_LIBC_CFLAGS): Likewise. (LIBGCC2_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS). (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS). ($(T)crtbegin.o): Do not use @inhibit_libc@. ($(T)crtend.o): Likewise. ($(T)crtbeginS.o): Do not use @inhibit_libc@. ($(T)crtendS.o): Likewise. ($(T)crtbeginT.o): Do not use @inhibit_libc@. ($(T)crtendT.o): Likewise. (stmp-fixinc): Do not complain about missing headers if inhibit_libc. * configure.ac (inhibit_libc): Set it to true/false. (--with-build-sysroot): New option. Use it to set SYSTEM_HEADER_DIR. * configure: Regenerated. 2005-07-25 Manfred Hollstein * calls.c (store_one_arg): Fix unsigned comparison warning. 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, and *-*-freebsd9. * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto. 2005-07-19 Kaveh R. Ghazi PR c/22476 * c-common.c (check_function_arguments): Call 'check_function_format' if either -Wformat or -Wmissing-format-attribute are specified. * c-format.c (check_function_format): Check -Wformat before calling 'check_format_info'. * c-opts.c (c_common_post_options): Don't warn for -Wmissing-format-attribute without -Wformat. * c-typeck.c (convert_for_assignment): Detect additional cases for -Wmissing-format-attribute. * doc/invoke.texi (-Wmissing-format-attribute): Document new behavior. 2005-07-19 Richard Guenther * 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. * cfganal.c (find_edge_index): Ditto. * combine.c (combine_instructions): Ditto. * ddg.c (create_scc): Ditto. (find_successors): Ditto. (find_predecessors): Ditto. (find_nodes_on_paths): Ditto. (longest_simple_path): Ditto. * flow.c (update_life_info): Ditto. (count_or_remove_death_notes): Ditto. (clear_log_links): Ditto. * modulo-sched.c (generate_reg_moves): Ditto. (find_max_asap): Ditto. (find_max_hv_min_mob): Ditto. (find_max_dv_min_mob): Ditto. * sbitmap.c (sbitmap_first_set_bit): Ditto. * sched-rgn.c (extract_edgelst): Ditto. * tree-into-ssa.c (prepare_names_to_update): Ditto. (dump_update_ssa): Ditto. (ssa_names_to_replace) Ditto. (switch_virtuals_to_full_rewrite): Ditto. (update_ssa): Ditto. * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. 2005-07-18 Daniel Berlin Fix PR tree-optimization/22483 * tree-complex.c (create_components): Use safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE. * tree-flow-inline.h (fill_referenced_var_vec): New function. * tree-flow.h (safe_referenced_var_iterator): New structure. (FOR_EACH_REFERENCED_VAR_SAFE): New macro. * tree-ssa-alias.c (setup_pointers_and_addressables): Use safe_referenced_var iterator. (add_type_alias): Ditto. 2005-07-19 Steven Bosscher * loop-init.c (rest_of_handle_loop2): Remove. (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions. (pass_rtl_loop_init, pass_rtl_loop_done, pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes. * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done, pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init, pass_tree_loop_done, and pass_tree_unswitch. (gate_loop): Rename to gate_tree_loop. * passes.c (init_optimization_passes): Update for renamed tree loop passes. Add the new loop2 passes as subpasses of loop2. * tree-pass.h: Add extern declarations for the new loop2 subpasses. Update for the renamed tree loop passes. 2005-07-18 Ian Lance Taylor PR middle-end/22057 * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder blocks when optimizing. 2005-07-18 Steve Ellcey * common.opt (frename-registers): Initialize to 2. (fweb): Ditto. (fgcse-after-reload): Ditto. * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE. (process_options): Only change flag_web, flag_rename_registers, and flag_rerun_cse_after_loop if not explicitly set by user. 2005-07-18 Jan Beulich * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc, ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode in 64-bit mode the same as DImode in 32-bit mode. (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr, ix86_split_lshr): Likewise. Rename to no longer refer to a specific mode. Add new mode parameter. * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'. * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3, x86_64_shift_adj): New expanders. (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1, *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New insns. Respective new splitters. Use renamed shift splitter helpers in 32-bit DImode shift splitters. * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr, ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new mode parameter. 2005-07-18 Jan Beulich * i386.md (movdi_extzv_1): New. (zero_extendhidi2): Combine alternatives and never force use of REX64 prefix. (zero_extendqidi2): Likewise. Don't restrict input selection. 2005-07-17 Daniel Berlin Fix PR tree-optimization/22531 * tree-ssa-pre.c (do_eustores): Make sure LHS is a decl for the moment. 2005-07-17 Daniel Berlin * tree-promote-statics.c (pass_promote_statics): Change dump file name. 2005-07-17 Daniel Berlin * tree-optimize.c (init_tree_optimization_passes): Add pass_eliminate_useless_stores pass. * tree-pass.h (pass_eliminate_useless_stores): New pass structure. * tree-ssa-pre.c (is_copy_stmt): New function. (follow_copies_till_vuse): Ditto. (do_eustores): Ditto. (gate_eustores): Ditto. 2005-07-16 Richard Henderson * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit. 2005-07-16 Danny Berlin Kenneth Zadeck * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h, tree-promote-statics.c * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h, tree-promote-statics.c: new files. * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p, nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1, int nonlocal_set_p, mark_constant_function): Deleted. (rest_of_handle_cfg): Removed call to mark_constant_function. (nonoverlapping_component_refs_p): Added calls to support type based aliasing. * tree-ssa-alias.c (may_alias_p, compute_flow_insensitive_aliasing): Ditto. * calls.c (flags_from_decl_or_type): Removed reference to cgraph_rtl_info. * c-typeck.c (convert_arguments): Make builtins tolerant of having too many arguments. This is necessary for Spec 2000. * cgraph.h (const_function, pure_function): Removed. * common.opt: Added "fipa-pure-const", "fipa-reference", "fipa-type-escape", and "ftree-promote-static". * opts.c: Ditto. * passes.c: Added ipa and tree-promote-statics passes. * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE, TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS. * tree-dfa.c (referenced_var_lookup_if_exists): New function. * tree-flow.h: Added exposed sra calls and addition of reference_vars_info field for FUNCTION_DECLS. * tree-pass.h: Added passes. * tree-sra.c: (sra_init_cache): New function. (sra_insert_before, sra_insert_after) Made public. (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p and made public. * tree-ssa-alias.c (dump_alias_stats): Added stats for type based aliasing. (may_alias_p): Added code to use type escape analysis to improve alias sets. * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and code to prune clobbers of static variables based on information produced in ipa-reference pass. Changed call clobbering so that statics are not marked as clobbered if the call does not clobber them. 2005-07-16 Daniel Berlin * tree-ssa-structalias.c (need_to_solve): Need to check for preds, too. 2005-07-16 Eric Botcazou * doc/install.texi (*-*-solaris2*): Document recommended version of GNU binutils and mention GNU linker problem on Solaris 10. 2005-07-16 Joseph S. Myers PR c/22421 * c-decl.c (c_build_bitfield_integer_type): New function. (finish_struct): Call it. * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types. 2005-07-16 Kaveh R. Ghazi * c-typeck.c (digest_init): Call 'convert_for_assignment' before returning. 2005-07-16 Jan Hubicka * cfg.c (update_bb_profile_for_threading): Fix profile updating. (scale_bbs_frequencies_int): Watch roundoff errors. * predict.c (return_prediction): Initialize return_stmt. 2005-07-16 Jan Hubicka * profile.c (rest_of_handle_branch_prob): Fix handling of estimation after RTL profiling. 2005-07-11 Andrew Pinski PR middle-end/22398 * fold-const.c (build_range_check): Convert high/low to etype if we are only comparing against exp. 2005-07-13 Daniel Berlin Fix PR tree-optimization/22376 * tree-ssa-structalias.c (build_constraint_graph): We really meant special var here. (need_to_solve): New function. (compute_points_to_sets): Use it. 2005-07-15 Jan Hubicka * cfg.c (update_bb_profile_for_threading): More diagnostic. * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block. 2005-07-15 Richard Guenther * c-common.c (handle_flatten_attribute): New function. Add flatten function attribute. * doc/extend.texi: Document flatten function attribute. * Makefile.in (ipa-inline.o): Depend on hashtab.h. * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node): New functions. (cgraph_decide_inlining): Handle functions with flatten attribute. 2005-07-14 David Edelsohn * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC, UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG, UNSPEC_XCHG, UNSPEC_AND): New. (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete. * config/rs6000/sync.md (FETCHOP): New code macro. (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr): New code attrs. (memory_barrier, sync_internal): Use unspec instead of unspec_volatile. (sync_compare_and_swap): Same. (sync_lock_test_and_set): Same. (sync_, sync_nand): Only use rs6000_emit_sync for QImode and HImode, and not PPC405. (sync_old_, sync_old_nand): Same. (sync_new_, sync_new_nand): Same. (sync_{si,di}_internal): New. (sync_nand{si,di}_internal): New. (sync_old_{si,di}_internal): New. (sync_old_nand{si,di}_internal): New (sync_new_{si,di}_internal): New. (sync_new_nand{si,di}_internal): New. (atomic_and{si,di}): New. (sync_new_nand{si,di}_internal): New. (atomic_and{si,di}): New. (sync_add_internal): Delete. (sync_addshort_internal): Use unspec instead of unspec_volatile. (sync_sub_internal): Delte. (sync_subshort_internal): New. (sync_andsi_internal): Use unspec instead of unspec_volatile. (sync_anddi_internal): Delete. (sync_boolsi_internal): Use unspec instead of unspec_volatile. (sync_booldi_internal): Delete. (sync_boolc_internal): Delete. (sync_boolcshort_internal): Use unspec instead of unspec_volatile. (sync_boolc_internal2): Delete. (sync_boolcc_internal): Delete. (isync, lwsync): Use unspec instead of unspec_volatile. * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS. Revert UNSPEC_VOLATILE. (rs6000_split_atomic_op): New. * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare. 2005-07-14 Eric Christopher * config/mips/mips.c (mips_canonicalize_comparison): Cast argument of trunc_int_for_mode to unsigned HOST_WIDE_INT. 2005-07-14 Eric Christopher * config/s390/t-tpf (SHLIB_MAPFILES): Remove. 2005-07-14 Steven Bosscher PR tree-optimization/22230 * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in the computation of the four cross productions for "range op range". 2005-07-14 Alexandre Oliva Ulrich Weigand PR target/20126 * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV in some insn. 2005-07-14 Ulrich Weigand * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition. 2005-07-14 Steve Ellcey * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode. 2005-07-14 Richard Guenther PR middle-end/22347 * config/i386/i386-protos.h (ix86_function_value): Change prototype to match new target hook. * config/i386/i386.c (ix86_value_regno): Change prototype to take extra type argument. (TARGET_FUNCTION_VALUE): Define. (ix86_function_ok_for_sibcall): Pass extra argument to ix86_value_regno, check return slot rtx for exact match. (ix86_function_value): Take extra parameter. Dispatch to ix86_value_regno with fndecl/fntype as provided. (ix86_value_regno): Handle extra type argument. * config/i386/i386.h (FUNCTION_VALUE): No longer define. * testsuite/gcc.target/i386/sseregparm-3.c: New testcase. * testsuite/gcc.target/i386/sseregparm-4.c: New testcase. * testsuite/gcc.target/i386/sseregparm-5.c: New testcase. * testsuite/gcc.target/i386/sseregparm-6.c: New testcase. * testsuite/gcc.target/i386/sseregparm-7.c: New testcase. 2005-07-14 Richard Guenther * Makefile.in (explow.o, reg-stack.o): Depend on target.h. * calls.c (expand_call): Pass fntype to hard_function_value. (emit_library_call_value_1): Likewise. * explow.c: Include target.h. (hard_function_value): Take extra argument, the fntype. Use new target hook for function_value. * expr.h (hard_function_value): Change prototype. * function.c (aggregate_value_p): Pass 0 as fntype to hard_function_value. (assign_parms): Use new target hook for function_value. Pass 0 as fntype to hard_function_value. (expand_function_end): Likewise. * reg-stack.c: Include target.h. (stack_result): Use new target hook for function_value. * target-def.h: New target hook function_value. * target.h: Likewise. * targhooks.c (default_function_value): New function. * targhooks.h (default_function_value): Declare. 2005-07-13 Ian Lance Taylor * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 2005-07-14 Jan Hubicka * tree-dfa.c (dump_variable): Use default_def function. * tree-ssa-alias.c (dump_points_to_info): Likewise. * tree-ssa.c (verify_use): Likewise. * tree-ssanames.c (release_ssa_name): Likewise. * tree-tailcall.c (eliminate_tail_call): Likewise. (tree_optimize_tail_calls_1): Likewise. * tree-vrp.c (get_value_range): Likewise. 2005-07-14 Ben Elliston * gcc.c (main): Compare language[0] with '*' when iterating over the infiles. 2005-07-13 Adrian Strae˝tling * config/s390/s390.c: (s390_cc_modes_compatible): Move before "s390_emit_compare". Add handling of CCZ1mode. (s390_canonicalize_comparison): Simplify cascaded EQ, NE. (390_emit_compare): Use "s390_cc_modes_compatible" for mode checking. (s390_branch_condition_mask): Add CCZ1mode handling. * config/s390/s390.md: ("seq", "*seq"): New pattern. ("sync_compare_and_swap_cc", "*sync_compare_and_swap_cc"): Use CCZ1mode instead of CCZmode. * config/s390/s390-modes.def: Add CCZ1mode. Comment new mode. 2006-07-13 Adrian Strae˝tling * config/s390/s390.md: ("cmpstrsi", "*cmpstr"): New pattern. ("strlen", "*strlen"): Use hard reg 0 in SImode. 2005-07-13 Eric Christopher * config/mips/mips.c (mips_canonicalize_comparison): New. (mips_emit_int_relational): Use. 2005-07-13 Eric Christopher * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove static extra parts. * config/s390/s390.md: Include tpf.md. Move tpf specific patterns... * config/s390/tpf.md: To here. * config/s390/s390.opt: Move tpf specific options... * config/s390/tpf.opt: to here. Add mmain option. * config/s390/tpf-unwind.h: Remove unnecessary defines. * config/s390/tpf.h: Rewrite. 2005-07-13 H.J. Lu * doc/tm.texi: Remove @xref{Cross-profiling}. 2005-07-13 Jeff Law * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR expressions, test their _DECL operands for pointer equality rather than using operand_equal_p. 2005-07-13 H.J. Lu * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ... (TARGET_POSIX_IO): This. * config/darwin.h: Likewise. * config/freebsd.h: Likewise. * config/linux.h: Likewise. * config/lynx.h: Likewise. * config/netbsd.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/linux.h: Likewise. * config/s390/tpf.h: Likewise. * config/sh/embed-elf.h: Likewise. * config/sparc/linux64.h: Likewise. * config/sparc/linux.h: Likewise. * config/svr4.h: Likewise. * gcov-io.h: Likewise. * doc/tm.texi: Updated. * libgcov.c (create_file_directory): Defined only if TARGET_POSIX_IO is defined. (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO is defined. 2005-07-13 Jan Hubicka * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch. 2005-07-13 David Edelsohn * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed structure as argument. 2005-07-13 Paolo Bonzini PR tree-optimization/21921 * tree-iterator.c (tsi_link_before): Support the case when tsi_end_p (tsi) == true. 2005-07-12 Zdenek Dvorak PR tree-optimization/22442 * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs correctly. 2005-07-12 Zdenek Dvorak PR rtl-optimization/20376 * toplev.c (process_options): Enable -fweb and -frename-registers when unrolling. * doc/invoke.texi: Update the information about when -fweb and -frename-registers are enabled. 2005-07-12 Andrew Pinski PR tree-opt/21840 * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type if *rhs_p is not a SSA_NAME. 2005-07-12 Daniel Berlin Fix PR tree-optimization/22422 * tree-ssa-structalias.c (struct variable_info): Add flag for special vars. (get_varinfo): Now a static function. (new_varinfo): init has_union and is_special_var to false. (solution_set_add): Check has_union. (do_da_constraint): Move temporary variable so it gets reset properly. Also check for special variable. (do_ds_constraint): Ditto. (do_sd_constraint): Ditto. (do_structure_copy): Check for special variable. (find_func_aliases): Ditto. (init_base_vars): Set special vars properly. 2005-07-13 Jan Hubicka * cfgexpand.c (expand_one_stack_var): Do not expand variables when we do unit-at-a-time. * tree-ssa-operands.c (parse_ssa_operands): Fix formatting. (get_expr_operands): Fix thinko wrt flags and subvars. PR tree-optimize/22379 * tree-inline.c (expand_call_inline): Do not output sorry in early inlining. 2005-07-12 Dale Johannesen * config/rs6000.c (rs6000_rtx_cost): Move FLOAT_EXTEND. 2005-07-12 Andrew Pinski PR bootstrap/21704 * host-linux.h: Include limits.h. 2005-07-12 Dale Johannesen * expr.c (compress_float_constant): Add cost check. * config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost. 2005-07-12 Dale Johannesen * gcc.target/i386/compress-float-sse.c: New. * gcc.target/i386/compress-float-sse-pic.c: New. * gcc.target/i386/compress-float-387.c: New. * gcc.target/i386/compress-float-387-pic.c: New. * gcc.dg/compress-float-ppc.c: New. * gcc.dg/compress-float-ppc-pic.c: New. 2005-07-12 Eric Christopher * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove static extra parts. * config/s390/s390.md: Include tpf.md. Move tpf specific patterns... * config/s390/tpf.md: To here. * config/s390/s390.opt: Move tpf specific options... * config/s390/tpf.opt: to here. Add mmain option. * config/s390/tpf-unwind.h: Remove unnecessary defines. * config/s390/tpf.h: Rewrite. 2005-07-12 Eric Christopher * gcc.c (struct infile): Update comment for language. (main): Rewrite input file resetting code. 2005-07-12 Andrew Pinski PR tree-opt/22335 * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if requiring a cast in a non RHS of modify_expr. Add a cast when required. (lookup_avail_expr): Use constant_boolean_node instead of boolean_false_node/boolean_true_node. 2005-07-12 Ben Elliston * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string and use it when printing num_edges. 2005-07-12 Bernd Schmidt * doc/extend.texi (Blackfin Built-in Functions): New section. * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the @opindex. 2005-07-12 Adrian Straetling * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp): s/cmpstrsi/cmpstrnsi (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and 'cmpstrnsi'. * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'. (init_optabs): Initialize cmpstrn_optab. * optabs.h: (enum insn_code cmpstrn_optab): Declare. * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation. * expr.c: (enum insn_code cmpstrn_optab): Declare. * config/i386/i386.md: s/cmpstr/cmpstrn * config/c4x/c4x.md: s/cmpstr/cmpstrn * doc/md.texi: Update documentation. 2005-07-11 Richard Henderson * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use build_va_arg_indirect_ref. (alpha_gimplify_va_arg): Likewise. * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise. * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Likewise. * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. 2005-07-12 Zdenek Dvorak * tree-flow.h (remove_empty_loops, single_dom_exit): Declare. * passes.c (init_optimization_passes): Add pass_empty_loop. * tree-pass.h (pass_empty_loop): Declare. * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop, try_remove_empty_loop, remove_empty_loops): New functions. * tree-ssa-loop-ivopts.c (single_dom_exit): Export. * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New. 2005-07-12 Peter Barada PR middle-end/16719 PR middle-end/18421 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes in address registers. * config/m68k/m68k.c (hard_regno_mode_ok): Likewise. * config/m68k/m68k.md: Replace 's' with 'i' in 4th alternative of addsi3_5200. 2005-07-11 Ian Lance Taylor * config/mips/mips.md (ffs2): Remove. 2005-07-11 Ian Lance Taylor * doc/tree-ssa.texi (Cleanups): Improve description of TRY_FINALLY_EXPR. (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases. 2005-07-11 Daniel Berlin * print-tree.c (print_node): Use DECL_ARGUMENT_FLD. * tree.h (DECL_ARGUMENT_FLD): New macro. 2005-07-11 Daniel Berlin Fix PR tree-optimization/22404 * tree-ssa-structalias.c (create_variable_info_for): Use correct offset. 2005-07-11 Bernd Schmidt * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt, compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand for second comparison operand. * config/bfin/predicates.md (reg_or_const_int_operand): New. * config/bfin/bfin.md (define_attr "type"): Add "sync". (define_insn_reservation "alu"): Likewise. (csync, ssync): Now of type sync. * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to -mcsync-anomaly -mspecld-anomaly. * config/bfin/bfin.opt (mcsync): Remove. (mcsync-anomaly, mspecld-anomaly): Add. * config/bfin/bfin.c: Include "insn-codes.h". (bfin_reorg): Extend to handle the CSYNC anomaly as well. (TARGET_DEFAULT_TARGET_FLAGS): New. * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly. 2005-07-11 Steven Bosscher * basic-block.h: Give the BB flags enum a name, bb_flags. Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK. * cfgcleanup.c (enum bb_flags): Remove here. (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove. (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS. (update_forwarder_flag): Likewise. (thread_jump): Likewise. (try_forward_edges): Likewise. (try_optimize_cfg): Likewise. Clear bb->flags before updating the forwarder flags. Don't clear bb->aux for all basic blocks. Only reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags. 2005-07-11 Richard Guenther * config/i386/i386.opt: New target option -msseregparm. * config/i386/i386.c (override_options): Error out for -msseregparm but no SSE support. (ix86_function_sseregparm): Check for global sseregparm. * doc/invoke.texi: Document -msseregparm. 2005-07-11 Kazuhiro Inaoka * config.gcc (m32r-*-linux*): Use the default extra_parts. (m32rle-*-linux*): Ditto. 2005-07-11 Jakub Jelinek * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type) instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in bytes. 2005-07-10 John David Anglin PR middle-end/22239 PR target/20126 * loop.c (loop_givs_rescan): Use expand_simple_binop instead of gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)). 2005-07-07 Daniel Berlin * tree-ssa-structalias.c (struct variable_info): Heapify complex. (varmap): Heapify varmap. (constraints): Heapify constraints. (struct constraint_graph): Heapify succs and preds. (constraint_vec_find): Update for heapification. (constraint_set_union): Ditto. (insert_into_complex): Ditto. (constraint_edge_vec_find): Ditto. (erase_graph_self_edge): Ditto. (add_graph_edge): Ditto. (get_graph_weights): Ditto. (merge_graph_nodes): Ditto. (build_constraint_graph): Ditto. (topo_visit): Ditto. (solve_graph): Ditto. (create_variable_info_for): Ditto. (init_base_vars): Ditto. (delete_points_to_sets): Free graph, varmap, and complex constraints. (condese_varmap_nodes): Free complex vector. (clear_edges_for_node): Clear succs and preds vector. 2005-07-10 Daniel Berlin * tree-ssa-structalias.c (update_alias_info): Change counting of references to not include vdefs. 2005-07-10 Daniel Berlin * tree-ssa-alias.c (free_used_part_map): Add missing free. (up_insert): Ditto. 2005-07-10 John David Anglin * pa.c (pa_commutative_p): Make PLUS commutative when TARGET_NO_SPACE_REGS is true. 2005-07-09 Diego Novillo * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h * tree-cfg.c (CHECK_OP): Only test for is_gimple_val. * tree-dfa.c (dump_subvars_for): New. (debug_subvars_for): New. (dump_variable): Show subvariables if VAR has them. * tree-flow-inline.h (get_subvar_at): New. (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT. * tree-flow.h (struct ptr_info_def): Remove field pt_malloc. Update all users. (struct subvar): Change fields offset and size to unsigned HOST_WIDE_INT. (dump_subvars_for): Declare. (debug_subvars_for): Declare. (get_subvar_at): Declare. (okay_component_ref_for_subvars): Change 2nd and 3rd argument to unsigned HOST_WIDE_INT *. (overlap_subvar): Likewise. * tree-gimple.c (is_gimple_reg): Always return false for SFTs and memory tags. * tree-pass.h (pass_build_pta, pass_del_pta): Remove. Update all callers. * tree-ssa-alias.c: Include tree-ssa-structalias.h. (compute_may_aliases): Call compute_points_to_sets. (collect_points_to_info_for): Remove. (compute_points_to_and_addr_escape): Remove. (delete_alias_info): Call delete_points_to_sets. (compute_flow_sensitive_aliasing): If the call to find_what_p_points_to returns false, call set_pt_anything. (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias. (set_pt_anything): Clear pi->pt_vars. (set_pt_malloc): Remove. (merge_pointed_to_info): Remove. (add_pointed_to_expr): Remove. (add_pointed_to_var): Remove. (collect_points_to_info_r): Remove. (is_escape_site): Make extern. (create_sft): New. (create_overlap_variables_for): Call it. * tree-ssa-copy.c (merge_alias_info): Never merge flow-sensitive alias information. * tree-ssa-operands.c (get_expr_operands): Adjust variables offset and size to be unsigned HOST_WIDE_INT. (add_to_addressable_set): Rename from note_addressable. Set TREE_ADDRESSABLE as the variables are added to the set. Update all users. (add_stmt_operand): Do not try to micro-optimize unmodifiable operands into VUSEs when adding V_MAY_DEFs for members in an alias set. * tree-ssa-operands.h (add_to_addressable_set): Declare. * tree-ssa-structalias.c: Include tree-ssa-structalias.h last. (struct variable_info): Add bitfield is_heap_var. (var_anyoffset, anyoffset_tree, anyoffset_id): Declare. (new_var_info): Initialize is_heap_var. (get_constraint_for): Add HEAP variables to the symbol table. Mark them with is_heap_var. (update_alias_info): New. Taken mostly from the old compute_points_to_and_addr_escape. (handle_ptr_arith): New. (find_func_aliases): Call update_alias_info. Call handle_ptr_info for tcc_binary expressions. Call mark_stmt_modified. (create_variable_info_for): If DECL has subvars, do not create variables for its subvars. Always add all the fields. (set_uids_in_ptset): If the solution includes ANYOFFSET and SFTs, then add all the SFTs of the structure. If VI->DECL is an aggregate with subvariables, add the SFT at VI->OFFSET. (find_what_p_points_to): If VI is an artificial variable, translate to bitfields in SSA_NAME_PTR_INFO. If the solution is empty, set pi->pt_vars to NULL (init_base_vars): Create ANYOFFSET. (compute_points_to_sets): Rename from create_alias_vars. Make extern. (pass_build_pta): Remove. (delete_points_to_sets): Rename from delete_alias_vars. (pass_del_pta): Remove. * tree-ssa-structalias.h (struct alias_info): Move from tree-ssa-alias.h. (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC, NUM_REFERENCES_SET): Likewise. (compute_points_to_sets, delete_points_to_sets): Declare. 2005-07-09 Richard Henderson * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12, alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12, alpha_split_lock_test_and_set_12): New functions. * config/alpha/alpha-protos.h: Update. * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC, UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO. * config/alpha/sync.md (I12MODE): New. (memory_barrier, mb_internal): Use unspec instead of unspec_volatile. (sync_): Likewise. (sync_nand): Likewise. (sync_old_): Likewise. (sync_new_): Likewise. (sync_old_nand, sync_new_nand): Likewise. (sync_compare_and_swap): Likewise. (sync_lock_test_and_set): Likewise. (sync_compare_and_swap): New. (sync_compare_and_swap_1): New. (sync_lock_test_and_set): New. (sync_lock_test_and_set_1): New. 2005-07-09 Diego Novillo PR 21356 PR 22332 * passes.c (execute_todo): Cleanup the CFG before updating SSA. 2005-07-09 Jakub Jelinek * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT: in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx). 2005-07-09 Richard SAndiford PR target/21656 * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define. 2005-07-08 David Edelsohn * config/rs6000/sync.md (load_locked_): Use Z for memory_operand constraint. (store_conditional_): Same. (sync_compare_and_swap): Same. (sync_lock_test_and_set): Same. 2005-07-08 Hans-Peter Nilsson Rewrite PIC support to more closely model actual instructions. * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol) (cris_symbol): Remove prototypes for removed functions. (cris_pic_symbol_type_of, cris_valid_pic_const) (cris_expand_pic_call_address): Prototypes for new functions. * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused variable. (cris_print_operand) : Remove cases for unused modifiers. : Add case for new punctuation character. : Temporarily set flag_pic = 2 instead of incorrectly emitting (extra) PIC modifier. : Do not assert for PLT. (cris_initial_frame_pointer_offset, cris_simple_epilogue) (cris_expand_prologue, cris_expand_epilogue): Check for pic_offset_table_rtx usage instead of taking current_function_uses_pic_offset_table as the final word. (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok): Remove flag_pic difference. (cris_valid_pic_const, cris_pic_symbol_type_of): New functions, the moral equivalents of... (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove functions. (cris_legitimate_pic_operand): Just call cris_valid_pic_const. (cris_handle_option): Mark ARG as unused. (cris_expand_pic_call_address): New worker function for "call", "call_value". (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not output PIC constructs here. (cris_output_addr_const_extra): Changes for emitting PIC modifiers as symbol-specific modifers, not whole or part of operands. * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case. (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped constants and flag_pic. (CONSTANT_INDEX_P): Adjust for new functions. (enum cris_pic_symbol_type): New helper type. (PRINT_OPERAND_PUNCT_VALID_P): Add ':'. * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL) (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New define_constants. ("movsi"): Emit actual instructions for GOT and relative access. ("*movsi_got_load"): New pattern to set up the register holding the GOT pointer. ("*movsi_internal"): Operand 1 is not a plain general_operand. Adjust FIXME for 'S'. : Sanity-check UNSPEC types for PIC. Use "movs" for -fpic cases. ("addsi3"): Add alternative for 'S'; use adds.w when possible. ("uminsi3","*expanded_call_value"): Remove 'S' alternative. ("call", "call_value"): Just call cris_expand_pic_call_address for PIC addresses. ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"): Remove special pattern. ("*expanded_call_side", "*expanded_call_value_side"): New patterns. (gotplt-to-plt, gotplt-to-plt-side-call) (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New peephole2:s. * config/cris/cris/predicates.md ("cris_general_operand_or_gotless_symbol"): Remove unused predicate. ("cris_general_operand_or_symbol"): Adjust for new functions. 2005-07-08 Andrew Pinski * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1. 2005-07-08 Daniel Berlin * Makefile.in (TREE_H): Add treestruct.def. (c-decl.o): Add pointer-set.h * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at visibility on regular DECL's. (merge_decls): Fix the copying of decl nodes of various types for the new structures. Don't update RTL, section name, weak status, etc, on DECL's without RTL. (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone. Don't check volatile on non-variable types. (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK to check whether we have seen arguments. * c-objc-common.c (c_tree_printer): Reverse order of tests so that flag is checked before field (flag is common, field is not). * dwarf2out.c (decl_ultimate_origin): Only DECL's with TS_DECL_COMMON could have an origin. (add_location_or_const_value_attribute): Don't check section name on non-var/function decls. (dwarf2out_var_location): Reverse order of tests. * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace with DECL_WRTL_CHECK. * expmed.c (make_tree): rtl is now in decl_with_rtl. * fold-const.c (fold_binary): Don't check weakness on non-var/function decls. (tree_expr_nonzero_p): Ditto. (fold_checksum_tree): Use tree_decl_extra as sizeof buffer. * ggc-page.c (extra_order_size_table): Add sizes for tree_decl_non_common, tree_parm_decl, tree_var_decl, and tree_field_decl. * gimplify.c (gimplify_bind_expr): Only set DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL. * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's without RTL. * langhooks-def.h (LANG_HOOK_INIT_TS): New. * langhooks.h (init_ts). New langhook. * passes.c (rest_of_decl_compilation): Reverse order of tests. * print-tree.c (print_node): Update to only print fields that exist in the structures the passed decl has. * toplev.c (wrapup_global_declarations): Don't reset DECL_DEFER_OUTPUT on DECL's that don't contain it. * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed. * tree-inline.c (remap_decl): Ditto. * tree-outof-ssa.c (create_temp): Reverse order of tests. * tree-pretty-print.c (print_declaration): Don't print DECL_REGISTER on things that don't contain it. * tree-vrp.c (expr_computes_nonzero): Don't check weakness on non-var/function decls. * tree.c (tree_contains_struct): New structure. (init_priority_for_decl): New hashtable. (tree_int_map): New structure. (tree_int_map_eq): New function. (tree_int_map_marked_p): Ditto. (tree_int_map_hash): Ditto. (tree_map): Move to tree.h. (tree_map_eq): Externalize. (tree_map_hash): Ditto. (tree_map_marked_p): Ditto. (init_ttree): Set up tree_contains_struct and call langhook. (decl_assembler_name): Use DECL_NON_COMMON_CHECK.. (tree_code_size): Update for new structures. (tree_node_structure): Update for new structures. (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls without the field. (copy_node_stat): Copy init priority. (build_decl_stat): Ditto for visibility. (ts_enum_names): New. (tree_contains_struct_check_failed): New function. (decl_init_priority_lookup): Ditto. (decl_init_priority_insert): Ditto. * treestruct.def: New file. * tree.h (CODE_CONTAINS_STRUCT): New macro. (CONTAINS_STRUCT_CHECK): Ditto. (tree_contains_struct_check_failed): New prototype. (DECL_CHECK): Removed. (DECL_MINIMAL_CHECK): New. (DECL_COMMON_CHECK): Ditto. (DECL_WRTL_CHECK): Ditto. (DECL_NON_COMMON_CHECK): Ditto. (DECL_WITH_VIS_CHECK): Ditto. (VAR_OR_FUNCTION_DECL_P): Ditto (struct tree_decl_minimal): New structure. (struct tree_decl_common): Ditto. (struct tree_decl_with_rtl): Ditto. (struct tree_decl_with_vis): Ditto. (struct tree_decl_non_common): Ditto. (struct tree_field_decl): Ditto. (struct tree_parm_decl): Ditto. (struct tree_var_decl): Ditto. (struct tree_function_decl): Ditto. (struct tree_const_decl): Ditto. (struct tree_result_decl): Ditto. (union tree_node): Add new structures. * var-tracking.c (track_expr_p): Reverse order of tests. * doc/c-tree.texi: Add documentation on DECL node internal structure. 2005-07-08 Kazu Hirata * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC. * system.h: Poison FINALIZE_PIC. * doc/tm.texi (FINALIZE_PIC): Remove. 2005-07-08 Andrew Pinski PR tree-opt/22329 * tree-ssa-propagate.c (fold_predicate_in): Convert the value to the correct type if we have a MODIFY_EXPR. 2005-07-08 Kazu Hirata PR tree-optimization/22360 * tree.c (upper_bound_in_type): Fix calculations for casting to a non-wider signed type and casting a signed value to a wider unsigned type. (lower_bound_in_type): Fix calculations for casting to a non-wider signed type. PR tree-optimization/20139 * tree-cfg.c (remove_bb): Check in_ssa_p before calling release_defs. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call fold_cond_expr_cond. * tree-ssanames.c (release_defs): Assert in_ssa_p. * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite. 2005-07-08 Andrew Pinski PR tree-opt/22356 * tree-complex.c (expand_complex_libcall): Produce REALPART_EXPR/IMAGPART_EXPR with the correct type. 2005-07-08 Kenneth Zadeck * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a != b" assert and inserted fastpath code for this case. (bitmap_ior): Removed "a != b" assert. 2005-07-08 Kazuhiro Inaoka * config/m32r/linux.h (STARTFILE_SPEC): Support PIE. (ENDFILE_SPEC): Likewise. * config/m32r/m32r.h (ASM_SPEC): Likewise. * config/m32r/m32r.c (m32r_output_function_epilogue): Care for a large stack frame at epilogue. 2005-07-08 David Billinghurst * final.c: Include sdbout.h when required. 2005-07-07 Geoffrey Keating * config.gcc (*-*-darwin*): Only one target-specific header file for generic darwin. (powerpc-*-darwin*): Add version-specific header files. * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp. * config.in: Regenerate. * configure: Regenerate. * gcc.c: Include xregex.h. (version_compare_spec_function): New. (spec_function): Add version-compare. (replace_outfile_spec_function): Reformat comment. (compare_version_strings): New. * config/darwin-c.c (version_as_macro): New. (builtin_define): New. (darwin_cpp_builtins): New. * config/darwin-protos.h (darwin_cpp_builtins): New. * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here. (LIB_SPEC): Make unconditional, update comment. (TARGET_C99_FUNCTIONS): Define. * config/darwin.opt: Sort. (mmacosx-version-min=): New. * config/darwin7.h: Delete. * config/darwin8.h: Delete. * config/i386/darwin.h (): Call darwin_cpp_builtins. * config/rs6000/darwin.h (): Call darwin_cpp_builtins. (TARGET_C99_FUNCTIONS): Define. * config/rs6000/darwin7.h: New. * config/rs6000/darwin8.h: New. * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min= (-mmacosx-version-min): Document. 2005-07-07 Ian Lance Taylor * config/mips/mips.md (abs2) [GPR]: Remove. 2005-07-07 John David Anglin PR middle-end/22239 * loop.c (loop_givs_rescan): Check that v->new_reg is a REG. 2005-07-07 Khem Raj * config/arm/arm.c (thumb_output_function_prologue): Calculate offset in bytes, not words. 2005-07-07 Paul Brook * config/arm/arm.c (arm_pad_arg_upward): Compare return value of DEFAULT_FUNCTION_ARG_PADDING to upward. 2005-07-07 Richard Henderson * function.c (locate_and_pad_parm): Record parameter alignment in stack_alignment_needed. 2005-07-07 David Edelsohn * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete. (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New. (define_attr "type"): Add isync, sync, load_l, store_c. * config/rs6000/sync.md (memory_barrier): Change to define_expand. Create scratch volatile MEM. (sync_internal): New. POWER mnemonic is dcs, not ics. Attribute sync. (load_locked_): New. (store_conditional_): New. (sync_compare_and_swap): Replace with splitter. (sync_lock_test_and_set): Replace with splitter. (sync_): Change to unspec_volatile UNSPECV_SYNC_OP and UNSPECV_ISYNC. (isync): Change to unspec_volatile UNSPECV_ISYNC. POWER mnemonic is ics. Attribute isync. (lwsync): Change to unspec_volatile UNSPECV_LWSYNC. Attribute lwsync. * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE and UNSPECV_SYNC_OP. (emit_unlikely_jump): New. (emit_load_locked): New. (emit_store_conditional): New. (rs6000_split_compare_and_swap): New. (rs6000_split_lock_test_and_set): New. (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L, TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC. * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap, rs6000_split_lock_test_and_set): Declare. * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md, mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l, store_c, isync, sync. 2005-07-07 Kelley Cook * Makefile.in (echo_quoted_to_gtyp): New template for outputing filenames to gtyp-gen.h. (s-typ-gen): Use it in place of for loops. 2005-07-07 J"orn Rennecke * hooks.c (hook_bool_rtx_int_false): New function. * hooks.h (hook_bool_rtx_int_false): Declare. * target-def.h (TARGET_COMMUTATIVE_P): Define. (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P. * target.h (struct gcc_target): Add commutative_p member. * targhooks.c (hook_bool_rtx_commutative_p): New function. * targhooks.h (hook_bool_rtx_commutative_p): Declare. * pa.c (TARGET_COMMUTATIVE_P): Redefine. (pa_commutative_p): New function. * jump.c (target.h): Include. (rtx_renumbered_equal_p): Use targetm.commutative_p. * doc/tm.texi: Document TARGET_COMMUTATIVE_P. 2005-07-07 Adrian Straetling * config/s390/s390-protos.h (s390_expand_clrmem): Delete. (s390_expand_setmem): New. * config/s390/s390.c: Likewise. (print_shift_count_operand): Truncate to 12 bits instead of 6. Adapt comments. * config/s390/s390.md: ("setmem"): Accept character as general_operand. Call new function "s390_expand_setmem". ("clrmem_long", "*clrmem_long"): Rewrite to ... ("setmem_long", "*setmem_long"): ... this. 2005-07-07 Adrian Straetling * config/s390/s390.c: (optimization_options): Enable TARGET_MVCLE at -Os. * doc/invoke.texi: Document changes in default behaviour. * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle". 2005-07-07 Adrian Straetling * expr.c: (set_storage_via_setmem): Convert opchar to mode defined by back-end. 2005-07-07 Jakub Jelinek * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after all sets in the pattern. * config/rs6000/rs6000.md (stack_protect_testsi, stack_protect_testdi): Likewise. 2005-07-06 Jeff Law * tree-vrp.c (simplify_using_ranges): Kill. (vrp_finalize): Remove call to simplify_using_ranges. (simplify_stmt_using_ranges): New function extracted from simplify_using_ranges. (simplify_div_or_mod_using_ranges): Likewise. (simplify_abs_using_ranges): Likewise. (simplify_cond_using_ranges): New function. * tree-flow.h (simplify_stmt_using_ranges): Prototype. * tree-ssa-propagate.c (substitute_and_fold): Call simplify_stmt_using_ranges if we have range information. 2005-07-06 James E. Wilson * config/ia64/ia64.c (ia64_reorg): Check optimize before ia64_flag_schedule_isns2. * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when reading/writing general registers. (ia64_function_arg): Revert 2005-06-18 change. 2005-07-06 John David Anglin * pa.c (legitimize_pic_address): Use gcc_assert instead of abort. (legitimize_tls_address): Use gcc_unreachable instead of abort. 2005-07-06 Kaz Kojima * function.c (expand_function_end): Revert part of 2005-06-27 patch. Do sjlj_emit_function_exit_after after return_label. 2005-07-06 Kazu Hirata * doc/install.texi (--disable-libssp): New. 2005-07-06 Fariborz Jahanian * doc/invoke.texi: Update -fforce-mem documentation. * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove code for -fforce-mem. * expmed.c: (store_bit_field,store_fixed_bit_field, extract_bit_field): Ditto. * expr.c: (convert_move): Ditto. * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop, expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move, emit_conditional_add,expand_float,expand_fix): Ditto. * opts.c: (decode_options): Remove setting of flag_force_mem flag. (common_handle_option): Issue warning when -fforce-mem specified. 2005-07-06 Paul Brook * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last argument is empty. * configure: Regenerate. 2005-07-06 J"orn Rennecke * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09. 2005-07-06 Daniel Berlin Fix PR tree-optimization/22319 Fix PR tree-optimization/22140 Fix PR tree-optimization/22310 * tree-ssa-structalias.c (do_structure_copy): Give up earlier on variable sized types. Use correct type for intermediate structure on *a = *b structure copies. 2005-07-06 Jakub Jelinek * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE): Remove. (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA. (machine_function): Move typedef to... * config/rs6000/rs6000.c (machine_function): ... here. Add varargs_save_offset field. (rs6000_stack_t): Remove varargs_size field. (setup_incoming_varargs): Allocate varargs save area using assign_stack_local, try to make it as small as possible. Save offset from virtual_stack_vars_rtx to the save area in cfun->machine->varargs_save_offset. Use UNITS_PER_FP_WORD instead of magic 8 when fp word byte size is used. (rs6000_va_start): Use cfun->machine->varargs_save_offset instead of -RS6000_VARARGS_SIZE. (rs6000_stack_info, debug_stack_info, rs6000_initial_elimination_offset): Remove all traces of varargs_size. * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove. * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA. 2005-07-06 Zdenek Dvorak PR tree-optimization/21963 * tree-ssa-loop-ivopts.c (get_computation_aff): Use constant_multiple_of in the same way get_computation_cost_at does. 2005-07-06 Jakub Jelinek * config/sparc/sparc.h (sparc_compare_emitted): New extern. * config/sparc/sparc.c (sparc_compare_emitted): New variable. (gen_compare_reg): If sparc_compare_emitted is set, clear it and return its previous value. (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL. * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. (stack_protect_set, stack_protect_test): New expanders. (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi, stack_protect_testdi): New insns. * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define. 2005-07-06 Jeff Law * tree-ssa-dce.c (cfg_altered): New global. (tree_dce_init): Initialize cfg_altered. (remove_dead_stmt): If we remove an edge in the CFG, then set CFG_ALTERED. (perform_tree_ssa_dce): If we altered the CFG, then invalidate the dominators. 2005-07-06 Kazu Hirata * Makefile.in (stamp-collect-ld): Use $(ORIGINAL_LD_FOR_TARGET) instead of $<. Don't remove ./collect-ld if it already exists. (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<. Don't remove ./nm if it already exists. 2005-07-05 Devang Patel * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number. (LOOP_VINFO_LOC, LOOP_LOC): Remove. * tree-vectorizer.c (vect_loop_location): New. (vect_print_dump_info): Use vect_loop_location. (new_loop_vec_info): Do not set LOOP_VINFO_LOC. (vectorize_loops): Set vect_loop_location. * tree-vect-analyze.c (vect_analyze_offset_expr, vect_determin_vectorization_factor, vect_analyze_operations, vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence, vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment, vect_analyze_data_refs_alignment, vect_analyze_data_ref_access, vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access, vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant, vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized, vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form, vect_analyze_loop): Adjust vect_print_dump_info API. * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand, vect_finish_stmt_generation, vectorizable_assignment, vectorizable_operation, vectorizable_store, vectorizable_load, vectorizable_live_operation, vectorizable_condition, vect_transform_stmt, vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment, vect_transform_loop): Same. * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use, vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops): Same. 2005-07-05 Randolph Chung * configure.ac (hppa*-*-linux*: Check for a TLS capable gas. * configure: Regenerate. * config/pa/pa-protos.h (tls_symbolic_operand): Declare. (pa_tls_referenced_p): Declare. * config/pa/pa.c (legitimize_pic_address): Reject TLS operands. (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New. (legitimize_tls_address): New. (hppa_legitimize_address): Handle TLS addresses. (pa_tls_symbol_ref_1, pa_tls_referenced_p): New. (TARGET_CANNOT_FORCE_CONST_MEM): Define. (emit_move_sequence): Handle TLS addresses. (pa_encode_section_info): Call default handler to handle common sections. * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New. (CONSTANT_ADDRESS_P): Reject TLS operands. (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define. * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM) (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE) (UNSPEC_TLSLE): Define new constants. (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New. * config/pa/predicates.md (symbolic_operand): Reject TLS operands. (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand) (tie_symbolic_operand, tle_symbolic_operand): New 2005-07-06 Kelley Cook * aclocal.m4: Update macros for autoconf 2.59 style. * configure.ac: Likewise. 2005-07-05 John David Anglin * pa.c (function_value): Handle small aggregates on 32-bit targets. (function_arg): Pass small aggregates in general registers on 32-bit targets. * som.h (MEMBER_TYPE_FORCES_BLK): Delete define. 2005-07-05 Andrew Pinski * Makefile.in (final.o): Fix dependencies. 2005-07-05 Joseph S. Myers PR c/22013 PR c/22098 * langhooks.h (struct lang_hooks): Add expr_to_decl. * langhooks.c (lhd_expr_to_decl): New. * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL): New. (LANG_HOOKS_INITIALIZER): Update. * tree.c (recompute_tree_invarant_for_addr_expr): Call expr_to_decl langhook. * c-tree.h (c_expr_to_decl): Declare. * c-typeck.c (c_expr_to_decl): New. (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR specially. * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define. 2005-07-05 Joseph S. Myers PR c/22308 * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY, C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants. 2005-07-05 Paolo Bonzini * Makefile.in: Adjust dependencies. * tree-pass.h: Add new passes and passes formerly in tree-optimize.c. * basic-block.h (duplicate_computed_gotos): Remove, it is now static. * alias.c (rest_of_handle_cfg, pass_cfg): New. * bb-reorder.c (duplicate_computed_gotos): Make it static. * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of rest_of_compilation. * bb-reorder.c (gate_duplicate_computed_gotos, pass_duplicate_computed_gotos, gate_handle_reorder_blocks, rest_of_handle_reorder_blocks, pass_reorder_blocks, gate_handle_partition_blocks, rest_of_handle_partition_blocks, pass_partition_blocks): New. * bt-load.c (gate_handle_branch_target_load_optimize, rest_of_handle_branch_target_load_optimize, pass_branch_target_load_optimize): New. * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2, pass_jump2): New. * cfglayout.c (pass_insn_locators_initialize): New. * cfgrtl.c (pass_free_cfg): New. * combine.c (gate_handle_combine, rest_of_handle_combine, pass_combine): New. * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse, gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New. * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New. * except.c (pass_set_nothrow_function_flags, pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh, pass_rtl_eh): New. * final.c (pass_compute_alignments, rest_of_handle_final, pass_final, rest_of_handle_shorten_branches, pass_shorten_branches, rest_of_clean_state, pass_clean_state): New. * flow.c (pass_recompute_reg_usage, gate_remove_death_notes, rest_of_handle_remove_death_notes, pass_remove_death_notes, rest_of_handle_life, pass_life, rest_of_handle_flow2, pass_flow2): New. * function.c (pass_instantiate_virtual_regs, pass_init_function, rest_of_handle_check_leaf_regs, pass_leaf_regs): New. * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass, pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse, pass_gcse): New. * global.c (rest_of_handle_global_alloc, pass_global_alloc): New. * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion, pass_rtl_ifcvt, gate_handle_if_after_combine, rest_of_handle_if_after_combine, pass_if_after_combine, gate_handle_if_after_reload, rest_of_handle_if_after_reload, pass_if_after_reload): New. * integrate.c (pass_initial_value_sets): New. * jump.c (pass_cleanup_barriers, purge_line_number_notes, pass_purge_lineno_notes): New. * mode-switching.c (rest_of_handle_mode_switching, pass_mode_switching): New. * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New. * loop-init.c (gate_handle_loop2, rest_of_handle_loop2, pass_loop2): New. * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize, pass_loop_optimize): New. * modulo-sched.c (gate_handle_sms, rest_of_handle_sms, pass_sms): New. * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2, pass_gcse2): New. * postreload.c (gate_handle_postreload, rest_of_handle_postreload, pass_postreload_cse): New. * profile.c (gate_handle_profiling, pass_profiling, rest_of_handle_branch_prob, pass_branch_prob): New. * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split, pass_split_before_regstack, gate_handle_split_before_regstack, gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2, rest_of_handle_split_all_insns, pass_split_all_insns): New. * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs, pass_stack_regs): New. * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove, gate_handle_stack_adjustments, rest_of_handle_stack_adjustments, pass_stack_adjustments): New. * regrename.c (gate_handle_regrename, rest_of_handle_regrename, pass_regrename): New. * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots, pass_delay_slots, gate_handle_machine_reorg, rest_of_handle_machine_reorg, pass_machine_reorg): New. * rtl.h (extern void purge_line_number_notes): New. * sched-rgn.c (gate_handle_sched, rest_of_handle_sched, gate_handle_sched2, rest_of_handle_sched2, pass_sched, pass_sched2): New. * tracer.c (gate_handle_tracer, rest_of_handle_tracer, pass_tracer): New. * value-prof.c (gate_handle_value_profile_transformations, rest_of_handle_value_profile_transformations, pass_value_profile_transformations): New. * var-tracking.c (gate_handle_var_tracking, pass_variable_tracking): New. * web.c (gate_handle_web, rest_of_handle_web, pass_web): New. * passes.c (open_dump_file, close_dump_file, rest_of_handle_final, rest_of_handle_delay_slots, rest_of_handle_stack_regs, rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, rest_of_handle_old_regalloc, rest_of_handle_regrename, rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks, rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2, rest_of_handle_regmove, rest_of_handle_tracer, rest_of_handle_if_conversion, rest_of_handle_if_after_combine, rest_of_handle_if_after_reload, rest_of_handle_web, rest_of_handle_branch_prob, rest_of_handle_value_profile_transformations, rest_of_handle_cfg, rest_of_handle_jump_bypass, rest_of_handle_combine, rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, rest_of_handle_gcse, rest_of_handle_loop_optimize, rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize, rest_of_handle_mode_switching, rest_of_handle_jump, rest_of_handle_eh, rest_of_handle_stack_adjustments, rest_of_handle_flow2, rest_of_handle_jump2, rest_of_handle_peephole2, rest_of_handle_postreload, rest_of_handle_shorten_branches, rest_of_clean_state, rest_of_compilation): Remove. * cgraphunit.c (ipa_passes): Moved from tree-optimize.c. * passes.c (dump_flags, in_gimple_form, all_passes, all_ipa_passes, all_lowering_passes, register_one_dump_file, register_dump_files, next_pass_1, last_verified, execute_todo, execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved from tree-optimize.c. (init_optimization_passes): Moved from tree-optimize.c, adding the RTL optimizations. * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h. * tree-optimize.c (dump_flags, in_gimple_form, all_passes, all_ipa_passes, all_lowering_passes, register_one_dump_file, register_dump_files, next_pass_1, last_verified, execute_todo, execute_one_pass, execute_pass_list, execute_ipa_pass_list, init_tree_optimization_passes, ipa_passes): Delete. * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing the RTL dumps. (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved from tree.h. (ipa_passes): Remove. (all_passes, all_ipa_passes, all_lowering_passes): Now extern. * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved to tree-pass.h. (dump_info_p, dump_flag): Moved to tree-dump.h. * Makefile.in: Adjust dependencies for tree-pretty-print.c, cgraph.c, opts.c. * passes.c (finish_optimization_passes): Use dump_begin and dump_end, TDI_end. (gate_rest_of_compilation): New. (pass_rest_of_compilation): Use it. (gate_postreload, pass_postreload): New. * toplev.c (general_init): Rename init_tree_optimization_passes. * toplev.h (init_tree_optimization_passes): Rename to init_optimizations_passes. * tree-dump.c (dump_flag): Make static. (dump_files): Remove RTL dumps. * tree-optimize.c (pass_all_optimizations, pass_early_local_passes, pass_cleanup_cfg, pass_free_cfg_annotations, pass_cleanup_cfg_post_optimizing, pass_free_datastructures, pass_init_datastructures, pass_fixup_cfg): Make non-static. * tree-pretty-print.c: Include tree-pass.h. * cgraph.c: Include tree-dump.h. 2005-07-04 Daniel Berlin * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var): Only fall back to saying it points to readonly memory if we can't do better. 2005-07-05 Kazuhiro Inaoka * config/m32r/m32r-protos.h: Remove m32r_finalize_pic. * config/m32r/m32r.c (m32r_compute_frame_size, m32r_expand_prologue): Take current_function_profile into account whenever we reference current_function_uses_pic_offset_table. (m32r_finalize_pic): Remove. * config/m32r/m32r.h (FINALIZE_PIC): Likewise. 2005-07-05 Kazu Hirata * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET) instead of $<. Don't remove ./as if it already exists. 2005-07-04 John David Anglin PR target/21723 * pa.md: Remove fcpy alternative from movhi and movqi patterns. * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers for complex modes when generating code for PA 1.0. (VALID_FP_MODE_P): New macro. (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register sets for all general and floating point modes. Align wide floating point modes to even register boundaries to comply with architectural requirements. (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS. * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting. (VALID_FP_MODE_P): New macro. (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register sets for all general and floating point modes. Align wide floating point modes to even register boundaries to comply with architectural requirements. 2005-07-04 Diego Novillo * tree-dump.c (dump_files): Initialize dump number for .cgraph to 0. 2005-07-04 Diego Novillo * tree-ssa-structalias.c: Don't include expr.h. 2005-07-04 Diego Novillo * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix comments. 2005-07-04 Daniel Berlin Fix PR tree-optimization/22279 * tree-ssa-structalias.c (offset_overlaps_with_access): Use correct operator. 2005-07-04 J"orn Rennecke * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t". 2005-07-03 Joseph S. Myers * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c, cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c, config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h, config/stormy16/stormy16.c, config/v850/v850.c, config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c, except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c: Avoid "." or "\n" at end of diagnostics and capital letters at start of diagnostics. * combine.c, cse.c: Don't translate dump file output. * toplev.c (print_version): Only translate output if going to stderr. 2005-07-03 Kazu Hirata * c-decl.c, tree-object-size.c, tree-vectorizer.c, config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment typos. 2005-07-03 John David Anglin * pa.c (fix_range): Fix typo in comment. 2005-07-03 Kazu Hirata * tree-vrp.c (extract_range_from_assert): Replace fold (build (...)) with fold_build2. 2005-07-03 Kaveh R. Ghazi * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs, gcc_gfc_char_table, init_dynamic_gfc_info): New. (format_types_orig, handle_format_attribute): Add support for format "gcc_gfc". 2005-07-03 Gabriel Dos Reis * varasm.c (assemble_variable): Fix format specifier thinko. 2005-07-03 Ira Rosen PR tree-optimization/22029 (and 22135) * tree-pretty-print.c (dump_generic_node): Check that the node is not a phi node before calling dump_vops. 2005-07-02 Gabriel Dos Reis * tree-dump.h (dump_string_field): Declare. * tree-dump.c: Use it instead of dump_string. (dump_string_field): Make non-static. 2005-07-03 Kaz Kojima * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean up the minimal CFG stuff always when optimize > 0. Call split_all_insns_noflow in PIC case if needed. 2005-07-02 Gabriel Dos Reis Christian Ehrhardt PR c++/18279 * c-decl.c (c_write_global_declarations): Dump contents of external scope to. * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl. , , , , , : Add. (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump is enabled. 2005-07-03 Joseph S. Myers * c-common.h (GCC_DIAG_STYLE): Define. * c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC version for format checking to 4.1. * c-format.c: Include toplev.h after c-common.h. (enum format_type): Add gcc_tdiag_format_type. (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs, gcc_tdiag_flag_specs, gcc_tdiag_char_table): New. (format_types_orig): Add gcc_tdiag. (init_dynamic_diag_info): Support gcc_tdiag formats. (handle_format_attribute): Likewise. * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove. (GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC version for format checking to 4.1. (warning0, warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_DIAG. * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c (finish_aliases_1): Do not use %qE. * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c, config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c: Correct format bugs. * config/v850/v850-protos.h (v850_output_aligned_bss): Change size parameter to unsigned HOST_WIDE_INT. * config/v850/v850.c (v850_output_aligned_bss): Likewise. 2005-07-02 David Edelsohn PR middle-end/21742 * expr.c (write_complex_part): Use adjust_address for MEM. (read_complex_part): Same. 2005-07-02 Daniel Berlin Fix PR tree-optimization/22280 * tree-sra.c (generate_element_init): Remove useless loop. 2005-07-02 Richard Henderson * config/alpha/alpha.c (alpha_legitimize_address): Check for TLS_MODEL_NONE. (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars. 2005-07-02 Andrew Pinski PR middle-end/14490 * fold-const.c (fold_binary): Handle the return value of fold_to_nonsharp_ineq_using_bound if we get back the same operand back. Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1". 2005-07-02 Jeff Law * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not a eliminate type conversion which feeds an equality comparison if the original type or either operand in the comparison is a function pointer. 2005-07-02 Joseph S. Myers * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt, config/rs6000/rs6000.opt, params.def: Remove "." from end of help texts. * config/avr/avr.c: Do not use '`' as left quote. * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c: Remove "." from end of diagnostics. Make diagnostics start with lowercase letter. 2005-07-02 Zack Weinberg Joseph S. Myers * toplev.c (default_tree_printer): Handle setting location with '+' flag. * c-objc.common.c (c_tree_printer): Likewise. * c-format.c (gcc_diag_flag_specs): Add '+'. (gcc_cdiag_char_table): Allow '+' flag for tree formats. (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag formats. * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c, config/v850/v850.c, function.c, stor-layout.c, toplev.c, tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end of diagnostics. Use %q+D not %s for a decl. Do not pass excess format arguments where %J is used without %D. 2005-07-02 Jakub Jelinek * gcc.c (LINK_SSP_SPEC): Define. (link_ssp_spec): New variable. (LINK_COMMAND_SPEC): Add %(link_ssp). (static_specs): Add link_ssp_spec. * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test. * configure: Rebuilt. * config.in: Rebuilt. * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define. * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise. * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test): If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp. -0x7008(2) instead of reading __stack_chk_guard variable. * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change number. (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants. (stack_protect_set, stack_protect_test): Use *_tls* patterns if TARGET_THREAD_SSP_OFFSET is defined. (stack_tls_protect_set_si, stack_tls_protect_set_di, stack_tls_protect_test_si, stack_tls_protect_test_di): New insns. Revert: 2005-06-27 Richard Henderson * 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-07-01 Richard Henderson * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to void * before struct sigcontext *. (x86_fallback_frame_state): Likewise. 2005-07-01 James E. Wilson * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet. 2005-07-01 Andrew Pinski PR tree-opt/22269 * tree-ssa-reassoc.c (should_transpose): Fix which operand we check for SSA_NAME for. 2005-07-01 Daniel Berlin Fix PR tree-optimization/22071 * tree-ssa-structalias.c (offset_overlaps_with_access): New function. (get_constraint_for_component_ref): Use it. 2005-07-01 Andrew Pinski PR other/22264 * diagnostic.c (diagnostic_report_current_module): Use pp_newline to print out the last new line. 2005-07-01 Hans-Peter Nilsson * config/cris/cris.md (CRIS_CC0_REGNUM): New constant. Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM. * config/cris/cris.c (cris_conditional_register_usage): Adjust reg_names[CRIS_CC0_REGNUM] for early CRIS versions. (cris_print_operand) : Handle CRIS_CC0_REGNUM. (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms. * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro. (enum reg_class): New member CC0_REGS. (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS. (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER) (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES) (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS) (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER): Adjust for register now described. 2005-07-01 Jakub Jelinek PR target/22262 * config/i386/i386.md (stack_protect_test_si, stack_protect_test_di): Add earlyclobber for scratch 3. * config/rs6000/rs6000.md (stack_protect_testsi, stack_protect_testdi): Add earlyclobber for scratch 3, remove earlyclobber from scratch 4. Older entries for 2005 can be found in ChangeLog-2005.