+2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * varasm.c (assemble_variable): Remove call to
+ lang_hooks.decls.prepare_assemble_variable.
+ * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
+ (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
+ * langhooks.h (lang_hooks_for_decls): Remove
+ prepare_assemble_variable.
+
+2007-04-08 Mike Stump <mrs@apple.com>
+
+ * config/i386/i386.c: Use inc/dec on Core2.
+
+2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
+ lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
+ lhd_tree_inlining_end_inlining): Remove.
+ * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
+ add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
+ end_inlining hooks.
+ * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
+ lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
+ lhd_tree_inlining_end_inlining): Remove prototypes.
+ (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
+ LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
+ LANG_HOOKS_TREE_INLINING_START_INLINING,
+ LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
+
+ * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
+ not set it.
+
+2007-04-08 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/29932
+ * config/avr/predicates.md (io_address_operand): Delete predicate.
+ (low_io_address_operand): Don't use 'mode' argument.
+ (higth_io_address_operand): Rename ...
+ (high_io_address_operand): ... to this. Don't use 'mode' argument.
+ * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
+ for above change.
+
+2007-04-07 Daniel Berlin <dberlin@dberlin.org>
+
+ Revert change removing staticp.
+
+2007-04-07 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/30289
+ * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
+ earlyclobber.
+
+2007-04-07 Bruce Korb <bkorb@gnu.org>
+
+ * c.opt: Add -Wformat-contains-nul.
+ * c-format.c (set_Wformat): Set warn_format_contains_nul to the
+ -Wformat setting.
+ (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
+ the NUL byte warning.
+
+2007-04-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
+
+2007-04-06 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree.c (staticp): No longer use staticp langhook.
+ * langhooks.c (lhd_staticp): Removed.
+ * langhooks.h (struct lang_hooks): Remove staticp.
+ * c-common.c (c_staticp): Remove.
+ * c-common.h (c_staticp): Ditto.
+ * langhooks-defs.h (lhd_staticp): Ditto.
+ (LHD_HOOKS_STATICP): Ditto
+ * tree.h (gcc_assert_lowered): New macro.
+
+2007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
+ argument "reliable".
+ (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
+ Add argument "reliable". Propagate it through calls.
+ (infer_loop_bounds_from_undefined): Derive number of iterations
+ estimates from references in blocks that do not dominate loop latch.
+ (gcov_type_to_double_int): New function.
+ (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
+ and expected_loop_iterations_unbounded.
+ * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
+ (expected_loop_iterations): Use expected_loop_iterations_unbounded.
+ * tree-data-ref.c (estimated_loop_iterations): Export.
+ (get_references_in_stmt): Fix -- do not return addresses of local
+ objects.
+ * cfgloop.h (expected_loop_iterations_unbounded,
+ estimated_loop_iterations): Declare.
+
+2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
+
+2007-04-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
+ and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
+ (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
+ Use output_387_reg_move().
+ (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
+ expander using X87MODEF12 mode macro.
+ (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
+ choosing register preferences. Use output_387_reg_move().
+ (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
+ instead of "x". Use output_387_reg_move().
+ (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
+ *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
+ (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
+ *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
+ Use output_387_reg_move().
+ (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
+ mode macro.
+ (*truncxf?f_i387 splitter): Ditto.
+
+2007-04-06 Daniel Berlin <dberlin@dberlin.org>
+
+ * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
+ LANG_HOOKS_SAFE_FROM_P.
+ * expr.c (safe_from_p): Remove langhook call.
+ * langhooks.h (lang_hooks): Remove safe_from_p.
+ (lhd_safe_from_p): Remove prototype.
+ * langhooks.c (lhd_safe_from_p): Remove.
+
+2007-04-06 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
+ functions.
+
+2007-04-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
+ * config/i386/i386.md (*movsf_1, *movdf_nointeger,
+ *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
+ *movxf_integer): Use output_387_reg_move() for x87 reg->mem
+ alternative.
+ (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
+ *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
+
+2007-04-05 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (print_operand) [+]: Remove.
+ (alpha_end_function): Print nop if call at end of function.
+ * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
+ * config/alpha/alpha.md (UNSPEC_LDGP1): New.
+ (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
+ (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
+ (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
+ the call pattern. Update peepholes to match.
+
+2007-04-05 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/extend.texi (Other Builtins): Add decimal float variants
+ of signbit.
+ * builtins.def: Ditto.
+ * builtins.c (expand_builtin): Ditto.
+
+2007-04-05 Uros Bizjak <ubizjak@gmail.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/31478
+ * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
+ of V8HImode when calling ix86_binary_operator_ok.
+ (sse2_pmaddwd): Call ix86_binary_operator_ok.
+ (sdot_prodv8hi): Operands 1 and 2 must be register.
+
+2007-04-05 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-sra.c (try_instantiate_multiple_fields): Needlessly
+ initialize align to silence bogus warning.
+
+2007-04-05 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/22156
+ * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
+ all_no_warning.
+ (struct sra_walk_fns): Remove use_all parameter from use.
+ (sra_hash_tree): Handle BIT_FIELD_REFs.
+ (sra_elt_hash): Don't hash bitfld blocks.
+ (sra_elt_eq): Skip them in parent compares as well. Handle
+ BIT_FIELD_REFs.
+ (sra_walk_expr): Don't maintain or pass down use_all_p.
+ (scan_use): Remove use_all parameter.
+ (scalarize_use): Likewise. Re-expand assignment to
+ BIT_FIELD_REF of gimple_reg. De-scalarize before input or
+ output, and re-scalarize after output. Don't mark anything
+ for no warning.
+ (scalarize_ldst): Adjust.
+ (scalarize_walk_gimple_modify_statement): Likewise.
+ (build_element_name_1): Handle BIT_FIELD_REFs.
+ (instantiate_element): Don't warn for any element whose parent
+ is used as a whole.
+ (instantiate_missing_elements_1): Return the sra_elt.
+ (canon_type_for_field): New.
+ (try_instantiate_multiple_fields): New.
+ (instantiate_missing_elemnts): Use them.
+ (mark_no_warning): Removed.
+ (generate_one_element_ref): Handle BIT_FIELD_REFs.
+ (REPLDUP, sra_build_elt_assignment): New.
+ (generate_copy_inout): Use them.
+ (generate_element_copy): Likewise. Handle bitfld differences.
+ (generate_element_zero): Don't recurse for blocks. Use
+ sra_build_elt_assignment.
+ (generate_one_element_int): Take elt instead of var. Use
+ sra_build_elt_assignment.
+ (generate_element_init_1): Adjust.
+ (scalarize_use, scalarize_copy): Use REPLDUP.
+ (scalarize_ldst): Move assert before dereference.
+ (dump_sra_elt_name): Handle BIT_FIELD_REFs.
+
+2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
+
+ * regmove.c: Fix unused variable warnings due to previous commit.
+
+2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
+
+ * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
+ (regmove_bb_head): Remove.
+ (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
+ (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
+ problems with fixup_match_1.
+ Don't initialize/free regmove_bb_head.
+
+ (reg_is_remote_constant_p): If an insn is in the same basic block
+ but not before INSN, consider it remote, too.
+
+2007-04-05 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/25448
+ * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
+ DECL_ASSEMBLER_NAME, not the DECL_NAME.
+
+2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
+ (CONDITIONAL_REGISTER_USAGE): Likewise.
+
+2007-04-04 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/lib1funcs.asm: Remove unused file.
+
+2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
+
+ PR other/31356
+ * opts.c (print_specific_help): Fix --help=<language>
+ header line.
+ (common_handle_option): Support --help=common.
+
+2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
+
+ PR other/31353
+ * gcc.c (main): Do not run the linker if
+ print_subprocess_help indicates that it shouldn't be
+ run.
+
+2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
+
+ PR doc/31355
+ * doc/invoke.texi (--help=): Document <languages> value, fix
+ formatting in tables of values.
+
+2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
+
+ * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
+ dllimport attribute of virtual methods.
+
+2007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
+
+ * config/score/crti.asm: Change _bss_start to __bss_start.
+ * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
+ (OUTGOING_REG_PARM_STACK_SPACE) update.
+ * config/score/score.opt: add options to make backend support
+ score5, score5u, score7 and score7d.
+ * config/score/score.md: Likewise.
+ * config/score/misc.md: Likewise.
+ * config/score/mac.md: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/md.texi: update constraints define.
+
+2007-04-03 Richard Henderson <rth@redhat.com>
+
+ * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
+ an appropriate type, use the mode instead.
+
+2007-04-03 Richard Sandiford <richard@codesourcery.com>
+
+ * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
+ Set the default --with-arch setting to mips2.
+ * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
+ (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
+ (MULTILIB_OSDIRNAMES): Delete.
+ (MULTILIB_DIRNAMES): Define.
+ * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
+ (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
+ (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
+ definitions, except for _WRS_R3K_EXC_SUPPORT. Call
+ VXWORKS_OS_CPP_BUILTINS.
+ (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
+ (MIPS_DEBUGGING_INFO): Undefine.
+ (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
+
+2007-04-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/30704
+ * fold-const.c (native_encode_real): Encode real.c provided longs
+ as a series of 32-bit native integers.
+ (native_interpret_real): Interpret buffer as a series of 32-bit
+ native integers.
+
+2007-04-03 Richard Guenther <rguenther@suse.de>
+
+ * genpreds.c (write_insn_constraint_len): Write function
+ optimized for CONSTRAINT_LEN implementation.
+ (write_tm_preds_h): Output insn_constraint_len inline and
+ use it for CONSTRAINT_LEN.
+ (write_insn_preds_c): Don't output insn_constraint_len.
+ * doc/md.texi (define_register_constraint): Document multi-letter
+ constraints shall have the same length if they start with the same
+ letter.
+
+2007-04-03 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/31175
+ * config/i386/i386.md (isinf<mode>2): Expand only when
+ TARGET_C99_FUNCTIONS is set.
+
+2007-04-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
+ (x86_64-*-linux*): Ditto.
+ * config/i386/i386.opt (mpc): New option.
+ * config/i386/i386.c (overrride_options): Handle
+ ix87_precision_string.
+ * config/i386/crtprec.c: New file.
+ * config/i386/t-crtpc: Ditto.
+ * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
+ and -mpc80 options.
+ * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
+ * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
+ crtprec32.o, crtprec64.o and crtprec80.o.
+
+ * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
+ and -mpc80 options.
+ (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
+
+2007-04-02 Eric Christopher <echristo@apple.com>
+
+ * doc/invoke.texi (i386 and x86-64 Options): Document -m64
+ limitations on darwin.
+
+2007-04-02 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/31137
+ * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
+
+2007-04-02 Dave Korn <dave.korn@artimi.com>
+
+ * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
+
+2007-04-02 Dave Korn <dave.korn@artimi.com>
+
+ * libgcc2.h (exception_descriptor): Don't forward-declare.
+ (__get_eh_table_language, __get_eh_table_version): Delete
+ prototypes of long-dead functions.
+
+2007-04-01 Daniel Berlin <dberlin@dberlin.org>
+
+ * ebitmap.h: New file
+ * ebitmap.c: New file
+ * Makefile.in (ebitmap.o): New target.
+
+2007-04-01 Jan Hubicka <jh@suse.cz>
+
+ * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
+ before very first instruction.
+
+2007-04-01 Jan Hubicka <jh@suse.cz>
+
+ * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
+ waring on 64bit hosts.
+ * bitmap.h: Fix typo in bitmap_head_def.
+
+2007-04-01 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR rtl-optimization/31391
+ * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
+ into a DELETED_LABEL note, and the label is in an empty basic
+ block, update BB_END as well as BB_HEAD.
+
+2007-04-01 Richard Henderson <rth@redhat.com>
+
+ PR tree-optimization/31169
+ * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
+ to varying if the range is outside [0, prec-1].
+
+2007-04-01 Richard Sandiford <richard@codesourcery.com>
+
+ PR target/31388
+ * config/mips/mips.md (load_const_gp): New insn.
+ * config/mips/mips.c (mips_split_symbol): Avoid using or creating
+ the MIPS16 GP pseudo register if no_new_pseudos.
+ (mips16_gp_pseudo_reg): Use gen_load_const_gp.
+
+2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/31364
+ * config/rs6000/rs6000.md (call): Convert to LR hard reg for
+ secureplt.
+ (call_value): Likewise.
+
+2007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
+ Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 14737
+ * doc/invoke.texi: (optimization options): Reword description
+ of -ffast-math. Document its primary purpose.
+
+2007-03-31 Richard Guenther <rguenther@suse.de>
+
+ * omp-low.c (splay-tree.h): Include.
+ (lookup_decl): Replace splay-tree usage by pointer-map.
+ (maybe_lookup_decl): Likewise.
+ (new_omp_context): Likewise.
+ (delete_omp_context): Likewise.
+ * gimplify.c (splay-tree.h): Include.
+ * tree-inline.c (insert_decl_map): Replace splay-tree usage by
+ pointer-map.
+ (remap_ssa_name): Likewise.
+ (remap_decl): Likewise.
+ (remap_type_1): Likewise.
+ (remap_type): Likewise.
+ (copy_body_r): Likewise.
+ (expand_call_inline): Likewise.
+ (clone_body): Likewise.
+ (copy_tree_r): Likewise.
+ (remap_save_expr): Likewise.
+ (unsave_r): Likewise.
+ (unsave_expr_now): Likewise.
+ (tree_function_versioning): Likewise.
+ (build_duplicate_type): Likewise.
+ * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
+ (struct copy_body_data): Replace splay-tree by pointer-map.
+ * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
+ not $(SPLAY_TREE_H).
+ (gimplify.o): Depend on $(SPLAY_TREE_H).
+ (omp-low.p): Likewise.
+
+2007-03-31 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/predicates.md (even_register_operand,
+ odd_register_operand): New predicates.
+ * config/avr/avr.md (movw peephole2): New.
+ (movw_r peephole2): New.
+
+2007-03-30 Rafael Avila de Espindola <espindola@google.com>
+
+ * tree.h (get_signed_or_unsigned_type): New.
+ * fold-const.c (operand_equal_for_comparison_p): Use
+ get_signed_or_unsigned_type instead of
+ lang_hooks.types.signed_or_unsigned_type.
+ * expr.c (store_expr): Ditto.
+ * langhooks.c (get_signed_or_unsigned_type): New.
+ (lhd_signed_or_unsigned_type): New.
+ * langhooks.h (lhd_signed_or_unsigned_type): New.
+ * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
+
+2007-03-30 Richard Henderson <rth@redhat.com>
+
+ * tree-ssa-loop-ivopts.c: Include target.h.
+ (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
+ (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
+ (force_expr_to_var_cost): Use produce_memory_decl_rtl.
+ * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
+
+2007-03-30 Richard Henderson <rth@redhat.com>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
+ default for 64-bit.
+ (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
+ (TARGET_64BIT_MS_ABI): New.
+ (DBX_REGISTER_NUMBER): Handle 64-bit.
+ (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
+ (LONG_TYPE_SIZE): Force to 32.
+ (REG_PARM_STACK_SPACE): New.
+ (OUTGOING_REG_PARM_STACK_SPACE): New.
+ (REGPARM_MAX, SSE_REGPARM_MAX): New.
+ (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
+ (STACK_BOUNDARY): Use 128 for 64-bit.
+ * config/i386/cygwin.asm: Use push/ret to preserve call stack.
+ Add 64-bit implementation.
+ * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
+ argument unused.
+ * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
+ (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
+ Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
+ for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
+ (ix86_handle_cconv_attribute): Don't warn when ignoring if
+ TARGET_64BIT_MS_ABI.
+ (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
+ (ix86_pass_by_reference): Likewise.
+ (ix86_function_value_regno_p): Likewise.
+ (ix86_build_builtin_va_list): Likewise.
+ (ix86_va_start, ix86_gimplify_va_arg): Likewise.
+ (function_arg_advance_ms_64): New.
+ (function_arg_advance): Call it.
+ (function_arg_ms_64): New.
+ (function_arg): Call it.
+ (function_value_ms_64): New.
+ (ix86_function_value_1): Call it.
+ (return_in_memory_ms_64): New.
+ (ix86_return_in_memory): Call it.
+ (setup_incoming_varargs_ms_64): New.
+ (ix86_setup_incoming_varargs): Call it.
+ (ix86_expand_prologue): Handle 64-bit stack probing.
+ (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
+ (output_pic_addr_const): Likewise.
+ (x86_this_parameter): Likewise.
+ (x86_output_mi_thunk): Likewise.
+ (x86_function_profiler): Likewise.
+ (TARGET_STRICT_ARGUMENT_NAMING): New.
+ * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
+ (TARGET_64BIT_MS_ABI): New.
+ (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
+ * config/i386/i386.md (allocate_stack_worker): Remove.
+ (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
+ describe the clobber of eax without a match_scratch.
+ (allocate_stack_worker_postreload): Remove.
+ (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
+ describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
+ (allocate_stack_worker_rex64_postreload): Remove.
+ (allocate_stack): Handle 64-bit.
+ * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
+ * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
+ (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
+ (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
+ (STANDARD_STARTFILE_PREFIX_1): Likewise.
+ * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
+ * config.build (x86_64-*-mingw*): New host.
+ * config.host (x86_64-*-mingw*): New host.
+ * config.gcc (x86_64-*-mingw*): New target.
+ * gthr-win32.h (__gthread_key_create): Mark dtor unused.
+
+2007-03-30 Richard Henderson <rth@redhat.com>
+ Kai Tietz <kai.tietz@onevision.com>
+
+ * c-pragma.c (struct def_pragma_macro_value): New.
+ (struct def_pragma_macro): New.
+ (pushed_macro_table): New.
+ (dpm_hash, dpm_eq): New.
+ (handle_pragma_push_macro, handle_pragma_pop_macro): New.
+ (init_pragma): Install them.
+ * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
+
+2007-03-30 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_override_options): Clear
+ 'flag_delete_null_pointer_checks'.
+
+2007-03-30 Paolo Carlini <pcarlini@suse.de>
+
+ PR c++/26099
+ * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
+ RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
+ RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
+ RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
+ RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
+ RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
+ RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
+ C++ extensions.
+ * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
+
+2007-03-30 Steven Bosscher <steven@gcc.gnu.org>
+
+ * regmove.c: Move all of pass_stack_adjustments from here...
+ * combine-stack-adj.c: ...to this new file.
+ * Makefile.in: Add rules for combine-stack-adj.o.
+
+2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/31383
+ * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
+ to have the same length.
+
+2007-03-30 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/30700
+ * dwarf2out.c (reference_to_unused): Ask cgraph for functions
+ availablility; add more sanity checking; ask varpool only about
+ VAR_DECL.
+
+2007-03-29 Richard Henderson <rth@redhat.com>
+
+ * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
+ to decide, but __SIZEOF_LONG_LONG__.
+
+2007-03-29 Richard Henderson <rth@redhat.com>
+
+ * emutls.c (struct __emutls_array): New.
+ (emutls_destroy): Use it instead of casting element 0 from void*.
+ (__emutls_get_address): Likewise.
+
+2007-03-29 Richard Henderson <rth@redhat.com>
+
+ * varasm.c (initializer_constant_valid_p): Don't deny
+ DECL_DLLIMPORT_P on functions.
+
+ * config/i386/cygming.h: Remove function declarations.
+ (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
+ (ASM_OUTPUT_LABELREF): Remove.
+ (COMMON_ASM_OP): Remove.
+ (ASM_OUTPUT_COMMON): Remove.
+ (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
+ (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
+ (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
+ Rename from TARGET_ENCODE_SECTION_INFO.
+ * config/i386/netware.h: Likewise.
+ * config/i386/i386-protos.h: Update.
+ * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
+ of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
+ (legitimate_constant_p): Reject dllimports.
+ (dllimport_map, get_dllimport_decl): New.
+ (legitimize_dllimport_symbol): New.
+ (legitimize_address, ix86_expand_move): Use it.
+ (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
+ * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
+ (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
+ (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
+ * config/i386/predicates.md (constant_call_address_operand): Only
+ accept symbols; reject dllimport_p symbols.
+ * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
+ i386_pe_maybe_record_exported_symbol.
+ * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
+ (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
+ (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
+ trust the setting of DECL_DLLIMPORT_P.
+ (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
+ (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
+ (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
+ tidy the argument scanning loop.
+ (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
+ SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
+ (i386_pe_strip_name_encoding): Remove.
+ (i386_pe_binds_local_p): New.
+ (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
+ (i386_pe_output_labelref): Remove.
+ (i386_pe_asm_output_aligned_decl_common): New.
+ (i386_pe_maybe_record_exported_symbol): Rename from
+ i386_pe_record_exported_symbol; check for dllexported symbols.
+
+2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
+
+ * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
+ add comment explaining why vsnprintf cannot be used.
+
+2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR tree-optimization/30666
+ * tree.c (build_complex_type): When creating type names for DWARF2
+ debug info, create TYPE_DECLs for TYPE_NAME instead of
+ IDENTIFIER_NODEs.
+ (build_common_tree_nodes_2): Use build_complex_type when building
+ predefined complex types, to preserve canonical types.
+
+2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
+
+ * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
+ (noce_get_alt_condition): Look at it to determine whether to
+ reverse the condition or not.
+ (noce_get_condition): Substitute the truth for lies.
+ (noce_find_if_block): Set the then_else_reversed field.
+
+2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
+
+ * config/fr30/fr30.md (movdi): Do not accept immediates as the
+ destination of this insn.
+ * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
+ than calling gen_rtx_SET directly. Use r0 to hold the value of
+ 'address + 4' rather than a stack based temporary which can be
+ mis-optimized away.
+
+2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (s390_secondary_input_reload_class,
+ s390_secondary_output_reload_class): Functions removed.
+ (s390_secondary_reload): New function.
+ (TARGET_SECONDARY_RELOAD): Target macro defined.
+ * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
+ SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
+ * config/s390/s390.md ("reload_outti", "reload_outdi",
+ "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
+ "reload_out<mode>"): Expanders removed.
+ ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
+ "reload<mode>_nonoffmem_out"): Expanders added.
+
+2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
+ SRC->DEST replacement failed anyway.
+
+2007-03-28 Mike Stump <mrs@apple.com>
+
+ * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
+ * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
+ * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
+
+2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * config.gcc: Accept barcelona as a variant of amdfam10.
+ * config/i386/i386.c (override_options): Likewise.
+ * doc/invoke.texi: Likewise.
+
+2007-03-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
+ offsets for BIT_FIELD_REF and COMPONENT_REF.
+
+2007-03-28 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (is_global_var): Move ...
+ * tree-flow-inline.h (is_global_var): ... here.
+ * tree.h (is_global_var): Remove declaration.
+
+2007-03-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
+ option.
+ (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
+ * config/i386/i386.c (ix86_tune_features): Initialize new
+ tuning option.
+ * config/i386/predicates.md (promotable_binary_operator): Use
+ TARGET_TUNE_PROMOTE_HIMODE_IMUL.
+
+2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
+
+ PR target/31380
+ * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
+
+2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
+
+ * config/fr30/fr30.md (movsi_internal): Change destination
+ constraint from m to V and add m to the end.
+
+2007-03-28 Christian Bruel <christian.bruel@st.com>
+
+ * config/sh/sh.md (movsi_i): Fix type attribute.
+
+2007-03-28 Christian Bruel <christian.bruel@st.com>
+
+ * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
+ (movsf_ie): Likewise.
+
+2007-03-28 Christian Bruel <christian.bruel@st.com>
+
+ * config.gcc: Add sh4-300 to multilib.
+ * config/sh/t-mlib-sh4-300: New file.
+
+2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
+ ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
+ fix_trunc<mode>di2.
+ ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
+ fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
+ ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
+ "fixuns_trunctddi2"): Whitespace fix.
+
+2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
+ the definition of struct sh_args.
+ (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
+ CALL_COOKIE_INT_REG_GET): Likewise.
+
+2007-03-28 Steven Bosscher <steven@gcc.gnu.org>
+
+ * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
+ transformations are applied successfully.
+
+2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
+
+ * tree.c (tree_contains_struct): Permit 512 tree codes.
+ * tree.h (tree_contains_struct): Ditto.
+ (MAX_TREE_CODES): Ditto.
+ (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
+ SPARE member to store remaining padding bits.
+
2007-03-27 Anatoly Sokolov <aesok@post.ru>
- * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
+ * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
architecture.
2007-03-27 Janis Johnson <janis187@us.ibm.com>
2007-03-27 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
- computations with it with a HOST_WIDE_INT variable.
+ computations with it with a HOST_WIDE_INT variable.
2007-03-26 Mike Stump <mrs@apple.com>
2007-03-26 Richard Henderson <rth@redhat.com>
- PR target/31361
- * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
- IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
- IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
- IX86_BUILTIN_PSRLQ128): New.
- (ix86_init_mmx_sse_builtins): Add them.
- (ix86_expand_builtin): Expand them.
- * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
- operand 2 be TImode.
- * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
- _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
- _mm_srli_epi64): Mark __B const.
- (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
- (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
- _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
- new two-vector shift builtins.
+ PR target/31361
+ * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
+ IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
+ IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
+ IX86_BUILTIN_PSRLQ128): New.
+ (ix86_init_mmx_sse_builtins): Add them.
+ (ix86_expand_builtin): Expand them.
+ * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
+ operand 2 be TImode.
+ * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
+ _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
+ _mm_srli_epi64): Mark __B const.
+ (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
+ (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
+ _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
+ new two-vector shift builtins.
2007-03-26 Ian Lance Taylor <iant@google.com>
IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
(ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
- v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
+ v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
__builtin_ia32_pslld128, __builtin_ia32_psllq128,
__builtin_ia32_psrlw128, __builtin_ia32_psrld128,
__builtin_ia32_psrlq128, __builtin_ia32_psraw128 and