+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/PR30700
+ * 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