OSDN Git Service

2009-04-16 Bob Duff <duff@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5e4bd00..66374e5 100644 (file)
@@ -1,3 +1,396 @@
+2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
+       Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
+       * c-typeck.c (really_start_incremental_init): Likewise.
+       * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
+       (TARGET_INITIALIZER): Remove it.
+       * target.h (struct target): Remove vector_opaque_p.
+       * tree.c (build_opaque_vector_type): New.
+       * tree.h (TYPE_VECTOR_OPAQUE): New.
+       (build_opaque_vector_type): Declare.
+       * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
+       * config/rs6000/rs6000.c (build_opaque_vector_type,
+       rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
+       (rs6000_init_builtins): Use build_opaque_vector_type for
+       opaque_V4SI_type_node.
+
+2009-04-15  Catherine Moore  <clm@codesourcery.com>
+
+        * debug.h (set_name):  Declare.
+        * dwarf2out.c (dwarf2out_set_name): Declare.
+        (dwarf2_debug_hooks): Add set_name.
+        (find_AT_string): New.
+        (add_AT_string): Call find_AT_string.
+        (dwarf2out_set_name): New.
+        * cp/decl.c (grokdeclarator): Call set_name.
+        * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
+        * debug.c (do_nothing_debug_hooks):  Likewise.
+        * dbxout.c (dbx_debug_hooks): Likewise.
+        * sdbout.c (sdb_debug_hooks): Likewise.
+
+2009-04-15  Michael Eager <eager@eagercon.com>
+
+       * config/rs6000/rs6000.c: rs6000_function_value: set function return
+       reg for single-precision FPU
+       * config/rs6000/rs6000.md: (movsi_internal1): only for !TARGET_SINGLE_FPU
+       (movsi_internal1_single): New: add pattern to move SI values to/from
+       single-precision FP regs.
+
+2009-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * omp-low.c (lower_rec_input_clauses): Build correct address
+       expressions.
+       (expand_omp_for_generic): Fix multiplication type.
+       * tree-loop-distribution.c (build_size_arg): Build a
+       size_t argument.
+       (generate_memset_zero): Fix types.
+       * tree-profile.c (prepare_instrumented_value): Correctly
+       widen a pointer.
+
+2009-04-15  Ian Lance Taylor  <iant@google.com>
+
+       * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
+       * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
+       for -Wall and for -Wc++-compat.
+       (c_common_post_options): For C++, set warn_enum_compare if not
+       already set.
+       * c-tree.h (struct c_expr): Add field original_type.
+       (build_external_ref): Update declaration.
+       * c-parser.c (c_parser_braced_init): Set original_type.
+       (c_parser_initelt): Likewise.
+       (c_parser_expr_no_commas): Likewise.
+       (c_parser_conditional_expression): Likewise.
+       (c_parser_cast_expression): Likewise.
+       (c_parser_unary_expression): Likewise.  Pull setting of
+       original_code to top of function.
+       (c_parser_sizeof_expression): Set original_type.
+       (c_parser_alignof_expression): Likewise.
+       (c_parser_postfix_expression): Likewise.  Pull setting of
+       original_code to top of function.
+       (c_parser_postfix_expression_after_paren_type): Set
+       original_type.
+       (c_parser_postfix_expression_after_primary): Likewise.
+       (c_parser_expression): Likewise.
+       * c-typeck.c (build_external_ref): Add type parameter.  Change all
+       callers.
+       (c_expr_sizeof_expr): Set original_type field.
+       (parser_build_unary_op): Likewise.
+       (parser_build_binary_op): Likewise.  Optionally warn about
+       comparisons of enums of different types.
+       (digest_init): Set original_type field.
+       (really_start_incremental_init): Likewise.
+       (push_init_level, pop_init_level): Likewise.
+       * doc/invoke.texi (Warning Options): -Wenum-compare now
+       supported in C.
+
+2009-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
+       out a necessary conversion.
+       * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
+       names we didn't value number.
+       * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
+
+2009-04-15  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/39764
+       * tree-ssa-ccp.c (get_value): Canonicalize value with
+       canonicalize_float_value.
+
+2009-04-15  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
+       Wrong version of patch.
+
+2009-04-15  Jan Hubicka  <jh@suse.cz>
+
+       * builtins.def (va_start, va_end, va_copy): Mark nothrow.
+
+2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
+       our distinct integral and vector types.
+
+2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
+
+       * class.c (build_vtbl_ref_1): Remove call to assemble_external.
+       * init.c (build_vtbl_address): Remove call to assemble_external.
+
+2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
+       output for other floating point modes.
+
+2009-04-14  Diego Novillo  <dnovillo@google.com>
+
+       * diagnostic.c (diagnostic_report_diagnostic): Do not
+       warn about loaded plugins for DK_ERROR and DK_WARNING.
+       * c-decl.c (declspecs_add_type): Move call to
+       invoke_plugin_callbacks ...
+       * c-parser.c (c_parser_declspecs): ... here.
+       * plugin.c (dump_active_plugins): Tidy output.
+
+2009-04-14  Diego Novillo  <dnovillo@google.com>
+           Le-Chun Wu  <lcwu@google.com>
+
+       * configure.ac: Add --enable-plugin support.
+       Define ENABLE_PLUGIN and PLUGINLIBS when specified.
+       * Makefile.in (PLUGIN_H): Define.
+       Export ENABLE_PLUGIN and GMPINC to site.exp.
+       Add PLUGINLIBS to link command.
+       Add/modify dependencies for plugin.o and files including plugin.h.
+       (plugin.o): New.
+       * config.in: Regenerate.
+       
+       * opts.c (common_handle_option): Handle OPT_fplugin_ and
+       OPT_fplugin_arg_.
+
+2009-04-14  Le-Chun Wu  <lcwu@google.com>
+
+       * tree-pass.h (register_one_dump_file): Add a prototype for
+       register_one_dump_file.
+       * toplev.c (compile_file): Call initialize_plugins.
+       (do_compile): Call invoke_plugin_callbacks.
+       (toplev_main): Call invoke_plugin_callbacks.
+       * common.opt: Add -fplugin= and -fplugin-arg-.
+       * gcc-plugin.h: New public header file for plugins to include.
+       * plugin.c: New source file.
+       * plugin.h: New internal header file.
+       * passes.c (register_one_dump_file): Make it external.
+       
+       * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
+
+2009-04-14  Diego Novillo  <dnovillo@google.com>
+
+       * doc/plugins.texi: New.
+       * doc/gccint.texi: Add reference to Plugins chapter.
+       * doc/invoke.texi: Document -fplugin and -fplugin-arg
+       * diagnostic.c (diagnostic_report_diagnostic): Warn about
+       loaded plugins, if any.
+       * timevar.def (TV_PLUGIN_INIT): Define.
+       (TV_PLUGIN_RUN): Define.
+       * plugin.c: Include timevar.h
+       (plugins_active_p): New.
+       (dump_active_plugins): New.
+       (debug_active_plugins): New.
+
+2009-04-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
+       library paths.
+       * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
+
+2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
+       the same as a minus without a shift.
+
+2009-04-14  Nick Clifton  <nickc@redhat.com>
+
+       * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
+       comparisons with small integers will always produce a short
+       branch.
+
+2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
+
+       Merge:
+
+       2008-12-19  Diego Novillo  <dnovillo@google.com>
+
+               * cgraph.c (dump_cgraph_node): Show memory address of NODE.
+
+2000-04-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
+       verification.
+       (verify_gimple_assign_binary): Likewise.  Handle shifts and
+       rotates correctly.
+       (verify_gimple_phi): Print the mismatched argument position.
+       * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
+       Fix types.
+       (vect_update_init_of_dr): Likewise.
+       * matrix-reorg.c (transform_access_sites): Do what the
+       comment suggests.
+       * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
+
+2009-04-13  Michael Eager <eager@eagercon.com>
+
+       * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
+       _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
+       * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
+       * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
+       remove duplicate config
+
+2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
+
+       * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
+       file_name:line_number type locator of the call site.
+       
+2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * genautomata.c: Put blank after comma.
+       (automaton_decls): New.
+       (struct unit_usage): Add comments to member next.
+       (store_alt_unit_usage): Keep the list ordered.
+       (unit_present_on_list_p, equal_alternatives_p): New.
+       (check_regexp_units_distribution): Check units distribution
+       correctness correctly.
+       (main): Don't write automata if error is found.  Return correct
+       exit code.
+       
+       * config/m68k/cf.md (cfv4_ds): Remove.
+       (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
+       cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
+
+       * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
+       power4-load-ext, power4-store, power4-store-update,
+       power4-fpstore, power4-fpstore-update, power4-two, power4-three,
+       power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
+       power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
+       power4-sqrt, power4-isync): Modify reservation to make correct
+       unit distribution to automata.
+
+       * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
+       power5-store-update, power5-two, power5-three, power5-lmul,
+       power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
+       
+2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * except.c (pass_set_nothrow_function_flags): Set name and add
+       TODO_dump_func.
+       (set_nothrow_function_flags): Mention in the dump file when
+       changing a function to nothrow.
+
+2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
+
+       PR/39066
+       * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
+       instead of unsigned long.
+
+2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm.c (return_used_this_function): Remove.
+       (arm_output_function_prologue): Remove use of
+       return_used_this_function.
+       (output_return_instruction): Replace use of
+       return_used_this_function
+       by cfun->machine->return_used_this_function.
+       (arm_output_epilogue): Likewise.
+       (arm_output_function_epilogue): Likewise.
+       (thumb_unexpanded_epilogue): Likewise.
+       * config/arm/arm.h (struct machine_function):
+       New member return_used_this_function.
+
+2009-04-12  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/install.texi: Correct description of default directory for
+       --with-gxx-include-dir.
+
+2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (build_range_check): Properly deal with enumeral and
+       boolean base types.
+
+2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * doc/invoke.texi (max_gcse_passes): Remove documentation.
+       * params.def (PARAM_MAX_GCSE_PASSES): Remove.
+       * params.h (MAX_GCSE_PASSES): Remove.
+       * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
+       in sequence.  Remove ability to run multiple passes.
+       (bypass_jumps): Report run as third CPROP pass.
+
+2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
+
+       PR middle-end/39651
+       * except.c (can_throw_external): Look at each insn in a SEQUENCE
+       when deciding whether the whole SEQUENCE can throw.
+
+2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/39740
+       * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
+       offseted label references.
+
+2009-04-11  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
+
+2009-04-11  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/39732
+       * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
+       return variables as TREE_ADDRESSABLE.
+
+2009-04-11  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/39713
+       * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
+       reference trees have SSA_NAME operands.
+
+2009-04-11  Richard Guenther  <rguenther@suse.de>
+
+       PR c/39712
+       * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
+       address expressions.
+
+2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
+       match changes in Cygwin 1.7
+       (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
+       UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
+
+2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR tree-optimization/39701
+       * doc/invoke.texi (Optimization Options): Document change in
+       meaning and initialization of -fdelete-null-pointer-checks.
+
+2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/39701
+       * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
+
+       * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
+       here.
+
+       * doc/invoke.texi: Update -fdelete-null-pointer-checks.
+
+2009-04-10  Chao-ying Fu  <fu@mips.com>
+
+       * doc/tm.texi (Instruction Output): Document
+       TARGET_ASM_FINAL_POSTSCAN_INSN.
+       * target.h (final_postscan_insn): New field in asm_out.
+       * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
+       (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
+       * final.c (final_scan_insn): Call
+       targetm.asm_out.final_postscan_insn after outputting
+       an asm macro and a normal instruction.
+
+       * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
+       * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
+       * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
+       (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
+       (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
+
+2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR middle-end/39701
+       * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
+       variables as non-NULL even with -fdelete-null-pointer-checks.
+
+2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
+
+2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/39678
+       * config/i386/i386.c (classify_argument): Handle SCmode with
+       (bit_offset % 64) != 0.
+
 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
 
        * doc/invoke.texi (Optimize Options): Add cross-reference to
        * expmed.c (expand_divmod): Always use a comparison for a division
        by a large unsigned integer.
 
-        * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
-        for things others than variables or functions as nonzero.
+       * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
+       for things others than variables or functions as nonzero.
 
 2009-04-09  Nick Clifton  <nickc@redhat.com>
 
 
 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
 
-        * config/i386/i386.md (cmpcc): New.
-        * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
-        (sync_compare_and_swap_cc*): Delete.
-
-        * config/s390/s390.c (s390_compare_emitted): Remove.
-        (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
-        s390_compare_emitted used to be handled.  Assert that modes match.
-        (s390_emit_compare_and_swap): Use s390_emit_compare, do not
-        refer to sync_compare_and_swap_ccsi.
-        * config/s390/s390.h (s390_compare_emitted): Remove.
-        * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
-        instead of s390_compare_emitted.
-        (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
-        instead of s390_compare_emitted.
-        * config/s390/s390.md (cmpcc): New.
-        (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
-        CC_REGNUM, do not pretend it's set.
-        (sync_compare_and_swap_cc*): Delete.
-        * config/s390/predicates.md (cc_reg_operand): New.
-
-        * expr.c (sync_compare_and_swap_cc): Delete.
-        * optabs.h (sync_compare_and_swap_cc): Delete.
-        * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
-        is being used with can_compare_p.
-        (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
-        (find_cc_set): New.
-        (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
-        look for a MODE_CC set instead.  Use emit_store_flag.
-        (expand_compare_and_swap_loop): Likewise, with some additional
-        complication to avoid a force_reg when useless.  Use
-        emit_cmp_and_jump_insns.
-        * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
-        * doc/md.texi (sync_compare_and_swap_cc): Merge with
-        sync_compare_and_swap documentation.
+       * config/i386/i386.md (cmpcc): New.
+       * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
+       (sync_compare_and_swap_cc*): Delete.
+
+       * config/s390/s390.c (s390_compare_emitted): Remove.
+       (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
+       s390_compare_emitted used to be handled.  Assert that modes match.
+       (s390_emit_compare_and_swap): Use s390_emit_compare, do not
+       refer to sync_compare_and_swap_ccsi.
+       * config/s390/s390.h (s390_compare_emitted): Remove.
+       * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
+       instead of s390_compare_emitted.
+       (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
+       instead of s390_compare_emitted.
+       * config/s390/s390.md (cmpcc): New.
+       (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
+       CC_REGNUM, do not pretend it's set.
+       (sync_compare_and_swap_cc*): Delete.
+       * config/s390/predicates.md (cc_reg_operand): New.
+
+       * expr.c (sync_compare_and_swap_cc): Delete.
+       * optabs.h (sync_compare_and_swap_cc): Delete.
+       * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
+       is being used with can_compare_p.
+       (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
+       (find_cc_set): New.
+       (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
+       look for a MODE_CC set instead.  Use emit_store_flag.
+       (expand_compare_and_swap_loop): Likewise, with some additional
+       complication to avoid a force_reg when useless.  Use
+       emit_cmp_and_jump_insns.
+       * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
+       * doc/md.texi (sync_compare_and_swap_cc): Merge with
+       sync_compare_and_swap documentation.
 
 2009-04-09  Jan Hubicka  <jh@suse.cz>