+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>