OSDN Git Service

2008-09-23 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 26d38e4..1d13deb 100644 (file)
@@ -1,3 +1,444 @@
+2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
+
+       *config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
+       check for sibcall support for w64.
+
+2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
+
+2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
+
+       * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
+       parser_build_binary_op.
+       * c-decl.c (build_enumerator): Pass location to build_binary_op.
+       * c-typeck.c (build_array_ref): Same.
+       (parser_build_unary_op): New location argument.
+       (pointer_diff): Pass location to build_binary_op,
+       c_objc_common_truthvalue_conversion.
+       (build_modify_expr): Same.
+       (build_unary_op): New location argument.
+       (build_binary_op): New location argument.
+       (c_objc_common_truthvalue_conversion): Pass location to
+       c_*common_truthvalue_conversion.
+       * c-convert.c (convert): Same.
+       * c-common.c (binary_op_error): New location argument.
+       (pointer_int_sum): Pass location to build_binary_op.
+       (c_common_truthvalue_conversion): New location argument.
+       (warn_for_sign_compare): Same.
+       * c-common.h: Add location argument to c_common_truthvalue_conversion,
+       binary_op_error, build_binary_op, warn_for_sign_compare.
+       * c-parser.c (c_parser_condition): Pass location to
+       c_*common_truthvalue_conversion.
+       (c_parser_conditional_expression): Save condition's location and pass
+       it on down.
+       (c_parser_binary_expression): Same, but for the binary operator's
+       location.
+       (c_parser_omp_for_loop): Pass location to
+       c_objc_common_truthvalue_conversion.
+
+2008-09-23  Martin Jambor  <mjambor@suse.cz>
+
+       * cgraph.c (cgraph_free_edge): Use sizeof(*e).
+       (cgraph_node_remove_callees): New temporary f.  Hold the next item
+       in f when looping.
+       (cgraph_node_remove_callers): Likewise.
+
+       * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
+       (ipa_node_removal_hook): Likewise.
+
+       * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
+       gimple_call_copy_skip_args and moved to the gimple_call section.
+       * gimple.c (gimple_copy_call_skip_args): Renamed to
+       gimple_call_copy_skip_args.  Changed al users.
+
+2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * ira-color.c (start_allocno_priorities): Rename to
+       setup_allocno_priorities.  Use costs and
+       ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
+       range lengths.  Get rid off doubles.
+       (ira_fast_allocations): Call start_allocno_priorities.
+       
+2008-09-22  David Daney  <ddaney@avtrex.com>
+
+       PR target/37593
+       * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
+       register if TARGET_LONG_CALLS.
+
+2008-09-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37145
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
+       value-numbering union accesses with their offset and size only.
+       (visit_reference_op_load): Fix simplification of inserted conversions.
+       * tree-ssa-pre.c (find_or_generate_expression): Do not
+       recursively generate expressions if running FRE.
+
+2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.h (ISA_HAS_BADDU): New macro.
+       * config/mips/mips.md (*baddu_si_eb, *baddu_si_el,
+       *baddu_di<mode>): New patterns.
+
+2008-09-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37145
+       * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
+       (phi_translate_1): Constant fold references.
+
+2008-09-22  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/37482
+       * tree-vectorizer.h (struct _slp_instance): Add new field.
+       (SLP_INSTANCE_FIRST_LOAD_STMT): New.
+       (get_earlier_stmt): New function.
+       * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
+       function.
+       (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
+       * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
+       asserts that GSI points to the scalar statement being vectorized.
+       Set new statement location according to GSI.
+       (vect_schedule_slp_instance): Use GSI of
+       SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
+
+2008-09-21  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
+       (ipcp_insert_stage): Update dead_nodes bitmap.
+
+2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR target/37528 
+       * config/i386/t-cygming (SHLIB_LC): Remove.
+       (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
+       * config/i386/t-cygwin (SHLIB_LC): Specify all required
+       libraries.
+
+2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR middle-end/37170
+       PR middle-end/37280
+       * final.c (mark_symbol_ref_as_used): New helper function.
+       (output_operand): Instead of just looking inside MEMs for
+       SYMBOL_REFs, use new helper function and for_each_rtx.
+       * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
+       to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
+       Make head comment more general.
+       * config/darwin.c (machopic_output_indirection): Handle weak
+       references here, like in assemble_external.
+
+2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
+       (sparc_emit_float_lib_cmp): Change return type.
+       * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
+       (gen_compare_operator): New function.
+       (sparc_emit_float_lib_cmp): Return the new operator to be used in
+       the comparison sequence.  Minor tweaks.
+       * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
+       that the final operator and the result of sparc_emit_float_lib_cmp
+       match for software TFmode; use emit_insn in lieu of emit_jump_insn.
+       (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
+       buneq, bunge, bunle, bltgt): Assert that the final operator and the
+       result of sparc_emit_float_lib_cmp match for software TFmode.
+       (movqicc, movhicc, movsicc, movdicc): Merge into...
+       (mov<I:mode>cc): ...this.
+       (movsfcc, movdfcc, movtfcc): Merge into...
+       (mov<F:mode>cc): ...this.
+       (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
+       into...
+       (mov<I:mode>_cc_v9): ...this.
+       (movdi_cc_sp64_trunc): Delete.
+       (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
+       movdi_cc_reg_sp64): Merge into...
+       (mov<I:mode>_cc_reg_sp64): ...this.
+       (movsf_cc_sp64): Rename into...
+       (movsf_cc_v9): ...this.
+       (movdf_cc_sp64): Rename into...
+       (movdf_cc_v9): ...this.
+       (movtf_cc_hq_sp64): Rename into...
+       (movtf_cc_hq_v9): ...this.
+       (movtf_cc_sp64): Rename into...
+       (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
+
+2008-09-21  Diego Novillo  <dnovillo@google.com>
+
+       * doc/gccint.texi: Include generic.texi and gimple.texi.
+       Re-order index.
+       * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
+       (GIMPLE): Move to gimple.texi.
+       (Annotations): Remove references to to stmt_ann_t and
+       ssa_name_ann_t.
+       (SSA Operands): Rename from 'Statement Operands'.
+       * doc/generic.texi: New.
+       * doc/gimple.texi: New.
+       * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and
+       gimple.texi.
+       * Makefile.in (TEXI_GCCINT_FILES):
+       * gimple.c (gimple_copy_call_skip_args): Rename from
+       giple_copy_call_skip_args.  Update all users.
+       * doc/gimple.texi (gimple_copy_call_skip_args): Document.
+
+2008-09-21  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/37539
+       * tree-vect-transform.c (vect_transform_strided_load): Save vector
+       statement in related statement field only for the first load of the
+       group of loads with the same data reference.
+
+2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.h (TUNE_OCTEON): New macro.
+       * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
+       (mips_multipass_dfa_lookahead): Return 2 for Octeon.
+       * config/mips/octeon.md: New file.
+       * config/mips/mips.md: Include octeon.md.  Restore
+       semi-alphabetical order of include files.
+
+2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/37571
+       * config/i386/i386.md (*jcc_fused_1): Removed.
+       (*jcc_fused_2): Likewise.
+       (*jcc_fused_3): Likewise.
+       (*jcc_fused_4): Likewise.
+
+2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
+       (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
+       * target.h (gcc_target): Add ira_cover_classes.
+       * ira.c: Remove IRA_COVER_CLASSES guards.
+       (setup_cover_and_important_classes): Use targetm.ira_cover_classes
+       instead of IRA_COVER_CLASSES.
+       (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
+       (setup_class_translate): Likewise.
+       (setup_reg_class_intersect_union): Likewise.
+       (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
+       test of targetm.ira_cover_classes.
+       * opts.c (decode_options): Use targetm.ira_cover_classes instead
+       of IRA_COVER_CLASSES.
+       * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
+       (TARGET_INITIALIZER): Include it.
+       * targhooks.h (default_ira_cover_classes): Declare.
+       * targhooks.c (default_ira_cover_classes): New function.
+
+2008-09-19  Bob Wilson  <bob.wilson@acm.org>
+       
+       * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
+       
+2008-09-19  Ian Lance Taylor  <iant@google.com>
+
+       * varasm.c (narrowing_initializer_constant_valid_p): Return
+       NULL_TREE if ENDTYPE is not an integer.
+
+2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/30930
+       * tree-ssa.c (execute_update_addresses_taken): Also update
+       DECL_GIMPLE_REG_P for vector and complex types.
+
+2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
+           Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/37567
+       * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
+       empty before freeing them.
+       (find_replaceable_exprs): Move asserts to free_temp_expr_table.
+
+2008-09-18  Bob Wilson  <bob.wilson@acm.org>
+
+       * configure.ac: Add HAVE_AS_TLS check for Xtensa.
+       * config/xtensa/predicates.md (tls_symbol_operand): New.
+       * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
+       (TARGET_CANNOT_FORCE_MEM): Define.
+       (xtensa_tls_symbol_p): New.
+       (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
+       (xtensa_legitimate_address_p): Disallow constant pool TLS references.
+       (xtensa_tls_module_base): New.
+       (xtensa_call_tls_desc): New.
+       (xtensa_legitimize_tls_address): New.
+       (xtensa_legitimize_address): Handle TLS symbols.
+       (xtensa_tls_referenced_p_1): New.
+       (xtensa_tls_referenced_p): New.
+       (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and UNSPEC_DTPOFF.
+       (XTENSA_BUILTIN_THREAD_POINTER): New.
+       (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
+       (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3 builtin.
+       Add declarations for __builtin_thread_pointer and
+       __builtin_set_thread_pointer.
+       (xtensa_fold_builtin): Recognize new builtins.
+       (xtensa_expand_builtin): Expand new builtins.
+       * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
+       (TARGET_THREADPTR): Define.
+       (HAVE_AS_TLS): Define default value.
+       (LEGITIMATE_CONSTANT_P): Disallow TLS references.
+       * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
+       (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
+       (UNSPECV_SET_TP): New.
+       (sym_TPOFF, sym_DTPOFF): New.
+       (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
+       * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
+       * configure: Regenerated.
+       
+2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/37394
+       * config/ia64/ia64.c (ia64_optimization_options): Move
+       checking and setting flag_schedule_insns_after_reload and
+       ia64_flag_schedule_insns2 back to ...
+       (ia64_override_options): Here.
+
+2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR rtl-opt/37451
+       * loop-doloop.c (doloop_modify): New argument zero_extend_p and
+       zero extend count after the correction to it is done.
+       (doloop_optimize): Update call to doloop_modify, don't zero extend
+       count before call.
+
+2008-09-18  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
+
+       * ipa-prop.c: Correct comments.
+       * ipa-prop.h: Likewise.
+
+2008-09-18  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/37448
+       * ipa-reference.c (ipa_reference_local_vars_info_d,
+       ipa_reference_global_vars_info_d,
+       ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
+       ipa_reference_vars_info_t): Move here from ipa-reference.h
+       (node_duplication_hook_holder, node_removal_hook_holder): New.
+       (get_reference_vars_info_from_cgraph): Rename to ...
+       (get_reference_vars_info): ... this one, use cgraph uids.
+       (get_local_reference_vars_info, get_global_reference_vars_info):
+       Use cgraph instead of decl.
+       (ipa_reference_get_read_local, ipa_reference_get_written_local): Remove.
+       (ipa_reference_get_read_global, ipa_reference_get_not_read_global
+       ipa_reference_get_written_global, ipa_reference_get_not_written_global): Use
+       cgraph argument.
+       (check_call): Simplify avail check.
+       (scan_stmt_for_static_refs): Update.
+       (propagate_bits): Update.
+       (merge_callee_local_info): Remove.
+       (init_function_info): Use cgraph nodes.
+       (clean_function_local_data): Break out from ...
+       (clean_function): ... here.
+       (copy_local_bitmap, copy_global_bitmap): New functions.
+       (duplicate_node_data, remove_node_data): New functions.
+       (generate_summary): Register hooks; use visibility instead of
+       master clones.
+       (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
+       * ipa-reference.h (ipa_reference_local_vars_info_d,
+       ipa_reference_global_vars_info_d,
+       ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
+       ipa_reference_vars_info_t): Move to ipa-reference.c
+       (ipa_reference_get_read_local, ipa_reference_get_written_local):
+       Remove.
+       (ipa_reference_get_read_global, ipa_reference_get_written_global,
+       ipa_reference_get_not_read_global, ipa_reference_get_not_written_global):
+       Update prototype.
+       * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
+       (init_state): Remove.
+       (node_duplication_hook_holder, node_removal_hook_holder): New.
+       (get_function_state, set_function_state): Use VECtor.
+       (analyze_function): Check body availability.
+       (add_new_function): Likewise.
+       (duplicate_node_data, remove_node_data): New.
+       (generate_summary): Register hooks; do not care about clones.
+       (propafate): Do not care about clones; recursive functions are not looping.
+       * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
+       * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
+       * edge_duplication_hook_holder, node_duplication_hook_holder): Make
+       static.
+       * tree-flow.h (function_ann_d): Remove reference_vars_info.
+       * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops): Update call of
+       ipa-reference accesors.
+
+2008-09-18  Simon Baldwin  <simonb@google.com>
+
+       * c-opts.c (c_common_handle_option): Add handling for
+       -Wbuiltin-macro-redefined command line option.
+       * c.opt: Added builtin-macro-redefined option.
+       * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
+       documentation.
+
+2008-09-18  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37258
+       * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
+       and signedness for integral types.
+       (vn_phi_eq): Require compatible types.
+
+2008-09-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/34037
+       * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
+       TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
+       VAR_DECL.
+       * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
+       !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
+       ggc_free other TREE_LIST nodes from that chain.
+       * function.c (instantiate_decls): Instantiate also DECL_RTL
+       of vars in cfun->local_decls, free that list afterwards.
+
+2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
+       * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
+
+2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
+
+       * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
+       * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
+
+2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR tree-optimization/37102
+       * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
+       from a node. Check to see if another PHI is dead.
+       (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
+       remove real PHIs which have no uses.
+       (rewrite_out_of_ssa): Call eliminate_useless_phis.
+
+2008-09-18  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/37284
+       * tree-cfg.c (remove_useless_stmts_1): Remove
+       GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
+
+2008-09-18  Nick Clifton  <nickc@redhat.com>
+
+       * config/frv/frv.h (IRA_COVER_CLASSES): Define.
+       (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
+       to frv_secondary_reload_class.
+       (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
+       * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
+       (frv_secondary_reload_class): Omit unused parameter.
+       (frv_secondary_reload): New function.  Handle the case when
+       secondary_reload_class() is called before the reload_(in|out)
+       _optabs have been initialised.
+       * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
+       unused parameter.
+       * config/frv/frv.md: Define an exclusion set between fr550_m0
+       and fr550_f0.
+
+2008-09-18  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/37456
+       * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
+       want to insert after ends a BB insert on the single fallthru
+       outgoing edge.
+
+2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
+       Mention -march=z9-109, z9-ec and z10.
+
 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
 
        PR rtl-optimization/37544