+2007-03-26 Steven Bosscher <steven@gcc.gnu.org>
+
+ * ifcvt.c (noce_try_store_flag_constants): Don't check
+ no_new_pseudos here.
+ (noce_try_store_flag_constants): Don't check no_new_pseudos.
+ (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
+ noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
+ noce_try_sign_mask): Likewise.
+ (if_convert): Check no_new_pseudos here.
+
+ (cond_exec_process_if_block, noce_process_if_block, find_if_block):
+ Remove prototypes.
+ (struct noce_if_info): Add then_bb, else_bb, join_bb members.
+ (noce_get_condition): Handle new then_else_reversed argument.
+ (noce_init_if_info): Remove, fold into noce_find_if_block.
+ (noce_process_if_block): Take a struct noce_if_info as the
+ argument. Don't set up one based on ce_if_info. Update pointer
+ references accordingly.
+ (cond_move_process_if_block): Likewise.
+ (process_if_block): Removed.
+ (find_if_block): Removed. Move functionality two new functions,
+ noce_find_if_block and cond_exec_find_if_block.
+ (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
+ blocks and the symmetric IF-ELSE-JOIN case.
+ (cond_exec_find_if_block): Also new function mostly based on old
+ find_if_block and process_if_block.
+ (find_if_header): Replace find_if_block call with separately
+ guarded calls to noce_find_if_block and cond_exec_find_if_block.
+ (find_cond_trap): Update noce_get_condition call.
+ (dead_or_predicable): Likewise.
+
+2007-03-26 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
+ Remove.
+ (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
+ 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,
+ __builtin_ia32_pslld128, __builtin_ia32_psllq128,
+ __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
+ __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
+ __builtin_ia32_psrad128 builtins.
+
+2007-03-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
+ * config/i386/constraints.md
+ (define_constraint "I"): Use IN_RANGE macro.
+ (define_constraint "J"): Ditto.
+ (define_constraint "K"): Ditto.
+ (define_constraint "M"): Ditto.
+ (define_constraint "N"): Ditto.
+ (define_constraint "O"): Ditto.
+ * config/i386/predicates.md
+ (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
+ (define_predicate "const_0_to_3_operand"): Ditto.
+ (define_predicate "const_0_to_7_operand"): Ditto.
+ (define_predicate "const_0_to_15_operand"): Ditto.
+ (define_predicate "const_0_to_63_operand"): Ditto.
+ (define_predicate "const_0_to_255_operand"): Ditto.
+ (define_predicate "const_1_to_31_operand"): Ditto.
+ (define_predicate "const_2_to_3_operand"): Ditto.
+ (define_predicate "const_4_to_7_operand"): Ditto.
+
+2007-03-25 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
+ in SImode for save_world.
+ * config/rs6000/altivec.md (save_world, restore_world): Convert to
+ LR hard reg.
+
+2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/30784
+ * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
+ BIT_FIELD_REF.
+
+2007-03-25 Revital Eres <eres@il.ibm.com>
+
+ * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
+ Fold movement_possibility function into it.
+
+2007-03-25 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
+ (load_macho_picbase_{si,di}): Convert to LR hard reg.
+ (call_indirect_nonlocal_darwin64): Same.
+ (call_nonlocal_darwin64): Same.
+ (call_value_indirect_nonlocal_darwin64): Same.
+ (call_value_nonlocal_darwin64): Same.
+ (sibcall_nonlocal_darwin64): Same.
+ (sibcall_value_nonlocal_darwin64): Same.
+ (sibcall_symbolic_64): Same.
+ (sibcall_value_symbolic_64): Same.
+ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
+ LR pseudo.
+ (rs6000_emit_load_toc_table): Same.
+ * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
+ * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
+ (mull_call): Same.
+ (divss_call): Same.
+ (divus_call): Same.
+ (quoss_call): Same.
+ (quous_call): Same.
+ (load_toc_v4_pic_si): Same
+ (load_toc_v4_PIC_1): Same.
+ (load_toc_v4_PIC_1b): Same.
+ (call_indirect_aix{32,64}): Same.
+ (call_value_indirect_aix{32,64}): Same.
+ (call): Same.
+ (call_value): Same.
+ (call_local{32,64}): Same.
+ (call_value_local{32,64}): Same.
+ (call_indirect_nonlocal_aix{32,64}): Same.
+ (call_nonlocal_aix{32,64}): Same.
+ (call_value_indirect_nonlocal_aix{32,64}): Same.
+ (call_value_nonlocal_aix{32,64}): Same.
+ (call_indirect_nonlocal_sysv<mode>): Same.
+ (call_nonlocal_sysv<mode>): Same.
+ (call_value_indirect_nonlocal_sysv<mode>): Same.
+ (call_value_nonlocal_sysv<mode>): Same.
+ (sibcall): Same.
+ (sibcall_local{32,64}): Same.
+ (sibcall_value_local{32,64}): Same.
+ (sibcall_nonlocal_aix{32,64}): Same.
+ (sibcall_value_nonlocal_aix{32,64}): Same.
+ (sibcall_nonlocal_sysv<mode>): Same.
+ (sibcall_value): Same.
+ (sibcall_value_nonlocal_sysv<mode>): Same.
+
+2007-03-24 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
+ * config/arm/linux-eabi.h: Remove legacy syscall hack.
+
+2007-03-24 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/constraints.md: New file.
+ * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
+ satisfies_constraint_?.
+ * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
+ ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
+ ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
+ ia64_output_mi_thunk): Likewise.
+ (ia64_const_ok_for_letter_p): Remove.
+ (ia64_const_double_ok_for_letter_p): Remove.
+ (ia64_extra_constraint): Remove.
+ * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
+ (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
+ CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
+ CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
+ CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
+ EXTRA_MEMORY_CONSTRAINT): Remove.
+ * config/ia64/ia64.md: Include constriants.md. Replace
+ CONST_OK_FOR_? with satisfies_constraint_?.
+
+2007-03-23 Michael Meissner <michael.meissner@amd.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
+ DPD or BID name.
+ (name macros): Use DPD_BID_NAME to convert names properly.
+
+ * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
+ decimal floating point format.
+ (init_floating_libfuncs): Change decimal functions so that they
+ have a "bid_" prefix if the decimal system uses the BID format,
+ and "dpd_" prefix if the decimal system uses the DPD format.
+ (init_interclass_conv_libfuncs): Ditto.
+ (init_intraclass_conv_libfuncs): Ditto.
+
+ * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
+ using the BID format.
+
+ * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
+ whether we are using the BID decimal format.
+ * configure: Regenerate.
+
+ * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
+ the compiler has decimal floating point enabled. Define
+ __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
+ instead of DPD.
+
+ * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
+ using the BID format.
+
+ * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
+ whether we are using the BID decimal format.
+ * configure: Regenerate.
+
+ * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
+ the compiler has decimal floating point enabled. Define
+ __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
+ instead of DPD.
+
+ * doc/install.texi (--enable-decimal-float): Document BID and DPD
+ options, and that it is enabled for i386/x86_64 systems.
+
+ * Makefile.in (enable_decimal_float): New.
+ (DECNUMFMT): New.
+ (DECNUMINC): Add -I$(DECNUMFMT).
+ (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
+ to $(DECNUMFMT) from $(DECNUM).
+
+ * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
+ Substitute enable_decimal_float.
+ * configure: Regenerated.
+
+ PR other/30529
+ * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
+ unsigned long.
+
+ * configure.ac: Enable decimal float for x86_64-*-linux*.
+ * configure: Regenerated.
+
+ PR other/30530
+ * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
+ decimal128ClearSign to flip and clear the sign bit in decimal128.
+ (decimal_real_maxval): Set decimal128SetSign to set the sign
+ bit in decimal128.
+
+2007-03-23 Ian Lance Taylor <iant@google.com>
+
+ * fold-const.c (fold_binary): Correct warning for X - c >= X.
+
+2007-03-23 Ian Lance Taylor <iant@google.com>
+
+ * tree-dump.c (dump_files): Correct comment.
+
+2007-03-23 Ian Lance Taylor <iant@google.com>
+
+ * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
+
+2007-03-23 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tracer.c (tracer): Don't take FLAGS argument. Assert we are
+ in cfglayout mode. Don't go into and out of cfglayout mode.
+ Link the blocks in the order of the constructed traces.
+ (rest_of_handle_tracer): Adjust call to tracer.
+ * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
+ Don't go into cfglayout mode.
+ (rtl_loop_done): Don't go out of cfglayout mode.
+ * cfglayout.c (relink_block_chain): New function, split out from...
+ (fixup_reorder_chain): ...here. Remove redundant checking.
+ (cfg_layout_finalize): Don't clear the header, footer, and aux
+ fields here, move the code to do so to relink_block_chain. Likewise
+ for free_original_copy_tables.
+ * rtl.h (tracer): Update prototype.
+ * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
+ Assert we are in cfglayout mode. Don't go into and out of cfglayout
+ mode. Use relink_block_chain to serialize the CFG according to the
+ new basic block order. Move targetm.cannot_modify_jumps_p check from
+ here...
+ (gate_handle_reorder_blocks): ...to here.
+ (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
+ from here...
+ (gate_duplicate_computed_gotos): ...to here.
+ (rest_of_handle_reorder_blocks): Don't see if anything has changed,
+ something always changes when going into and out of cfglayout mode.
+ Perform an expensive cfg cleanup while going into cfglayout mode.
+ Always update liveness information on HAVE_conditional_execution
+ targets. Reserialize the basic blocks and go out of cfglayout mode.
+ * reg-stack.c: Include cfglayout.h.
+ (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
+ the call to reorder_basic_blocks.
+ * basic-block.h (reorder_basic_blocks): Update prototype.
+ (relink_block_chain): New prototype.
+ * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
+
+2007-03-23 Joseph Myers <joseph@codesourcery.com>
+
+ * config/mips/mips.md (type, hazard, *movdi_32bit,
+ *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
+ *movhi_internal, *movqi_internal, *movsf_hardfloat,
+ *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
+ movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
+ mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
+ applicable.
+ (movcc): Change first xfer to multi.
+ * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
+ config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
+ config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
+ config/mips/generic.md: Change reservations using "xfer" to use
+ "mfc,mtc".
+ * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
+ using match_operand.
+ (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
+ * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
+ examining mode.
+ (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
+
+2007-03-22 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c: Remove unnecessary function declarations.
+ Move targetm definition, and all related macros, to the end of
+ the file. Resort some functions to put definitions before uses.
+ (ix86_attribute_table): Make static. Move to end of file.
+ (ix86_gimplify_va_arg): Make static.
+
+2007-03-22 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
+ don't increase local_regparm with force_align_arg_pointer check.
+ (ix86_function_sseregparm): Assert 32-bit.
+ (type_has_variadic_args_p): New.
+ (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
+ type_has_variadic_args_p.
+ (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
+ (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
+ use memset instead. Do maybe_vaarg check first; skip attribute
+ tests if true; skip attribute tests for 64-bit.
+ (construct_container): Remove TARGET_DEBUG_ARG.
+ (function_arg_advance_32, function_arg_advance_64): Split out ...
+ (function_arg_advance): ... from here.
+ (function_arg_32, function_arg_64): Split out ...
+ (function_arg): ... from here.
+ (ix86_pass_by_reference): Tidy.
+ (ix86_function_value_regno_p): Rearrange w/ switch on regno.
+ (function_value_32): New, from parts of ix86_function_value
+ and ix86_value_regno.
+ (function_value_64): New, from parts of ix86_function_value
+ and ix86_libcall_value.
+ (ix86_function_value_1): New.
+ (ix86_function_value, ix86_libcall_value): Use it.
+ (return_in_memory_32, return_in_memory_64): Split out ...
+ (ix86_return_in_memory): ... from here.
+ (ix86_struct_value_rtx): Skip for 64-bit.
+ (ix86_libcall_value, ix86_value_regno): Remove.
+ (setup_incoming_varargs_64): Split out ...
+ (ix86_setup_incoming_varargs): ... from here.
+ (ix86_va_start): Remove TARGET_DEBUG_ARG.
+ (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
+ * config/i386/i386-protos.h (ix86_function_value): Remove.
+ * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
+
+2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR other/23572
+ * c-lex.c (interpret_float): On overflow, emit pedantic warning if
+ infinities not supported, otherwise emit warning if -Woverflow. On
+ underflow, emit warning if -Woverflow.
+ * real.c (real_from_string): Return -1 if underflow, +1 if overflow
+ and 0 otherwise.
+ * real.h (real_from_string): Update declaration
+
+2007-03-22 Kai Tietz <kai.tietz@onevision.com>
+ Richard Henderson <rth@redhat.com>
+
+ * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
+ * calls.c (compute_argument_block_size, expand_call,
+ emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
+ * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
+ * function.c (STACK_DYNAMIC_OFFSET): Likewise.
+ * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
+ * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
+ config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
+ config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
+ config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
+ Set to 1.
+
+2007-03-22 Joseph Myers <joseph@codesourcery.com>
+
+ * c-incpath.c (add_sysroot_to_chain): New.
+ (merge_include_chains): Add sysroot argument. Call
+ add_sysroot_to_chain if sysrooted.
+ (register_include_chains): Update call to merge_include_chains.
+ * doc/cppopts.texi: Document use of '=' in include directory
+ arguments.
+
+2007-03-22 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
+ Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
+ (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
+ insn pattern using X87MODEF12 mode macro.
+
+2007-03-21 Seongbae Park <seongbae.park@gmail.com>
+
+ * regmove.c (regmove_optimize): Use reg_mentioned_p
+ instead of reg_overlap_mentioned_p for DST.
+
+2007-03-21 Mike Stump <mrs@apple.com>
+
+ * c.opt: Fixup for Objective-C/C++.
+
+2007-03-21 Steve Ellcey <sje@cup.hp.com>
+
+ * explow.c (convert_memory_address): Fold memory reference when
+ POINTERS_EXTEND_UNSIGNED < 0
+
+2007-03-21 Richard Henderson <rth@redhat.com>
+
+ PR target/31245
+ * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
+ * config/i386/mmintrin.h (__m64): Likewise.
+ * config/i386/xmmintrin.h (__m128): Likewise.
+
+2007-03-21 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
+ (VXWORKS_OS_CPP_BUILTINS): Define.
+ * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
+ (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
+
+2007-03-21 Richard Sandiford <richard@codesourcery.com>
+
+ * rtl.h (constant_pool_reference_p): Delete.
+ (find_constant_src): Declare.
+ * rtlanal.c (find_constant_src): New function.
+ * simplify-rtx.c (constant_pool_reference_p): Delete.
+ * config/i386/i386.md: Use find_constant_src instead of
+ constant_pool_reference_p/avoid_constant_pool_reference pairs.
+
+2007-03-21 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
+ * c-cppbuiltin.c (c_cpp_builtins): Define them.
+
+2007-03-20 Mark Mitchell <mark@codesourcery.com>
+
+ * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
+ * config/arm/arm.c (arm_elf_asm_cdtor): New function.
+ (arm_elf_asm_constructor): Use it.
+ (arm_elf_asm_destructor): New function.
+
+2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * jump.c (mark_jump_label): Treat SEQUENCE specially.
+
+2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
+
+2007-03-19 Andrew Haley <aph@redhat.com>
+
+ PR tree-optimization/31264
+ * tree-vrp.c (register_edge_assert_for_1): Don't look though
+ VIEW_CONVERT_EXPRs.
+
+2007-03-19 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/30907
+ * fwprop.c (forward_propagate_into): Never propagate inside a loop.
+ (fwprop_init): Always call loop_optimizer_initialize.
+ (fwprop_done): Always call loop_optimizer_finalize.
+ (fwprop): We always have loop info now.
+ (gate_fwprop_addr): Remove.
+ (pass_fwprop_addr): Use gate_fwprop as gate.
+
+ PR rtl-optimization/30841
+ * df-problems.c (df_ru_local_compute, df_rd_local_compute,
+ df_chain_alloc): Call df_reorganize_refs unconditionally.
+ * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
+ refs_organized to refs_organized_size.
+ (df_ref_create_structure): Use refs_organized_size instead of
+ bitmap_size if refs had been organized, and keep refs_organized_size
+ up-to-date.
+ * df.h (struct df_ref_info): Change refs_organized to
+ refs_organized_size.
+ (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
+ bitmap_size.
+
+2007-03-19 Mark Mitchell <mark@codesourcery.com>
+
+ * except.c (output_function_exception_table): Do not reference the
+ EH personality routine for functions that do not require an
+ exception table.
+
+2007-03-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/30762
+ * c-typeck.c (convert_for_assignment): Call comptypes for
+ RECORD_TYPE or UNION_TYPE.
+
+ PR inline-asm/30505
+ * reload1.c (reload): Do invalid ASM checking after
+ cleanup_subreg_operands.
+
+2007-03-19 Jeff Law <law@redhat.com>
+
+ * tree-cfg.c (find_taken_edge): Tighten conditions for
+ optimizing computed gotos.
+
+2007-03-19 Michael Matz <matz@suse.de>
+
+ * builtins.c (expand_builtin_sync_operation,
+ expand_builtin_compare_and_swap,
+ expand_builtin_lock_test_and_set): Care for extending CONST_INTs
+ correctly.
+
+ * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
+ sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
+ for operand 3.
+
+2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * doc/tm.texi: Add brackets around the return type of
+ TARGET_SECONDARY_RELOAD.
+
+2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
+ Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31254
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
+ Use handled_component_p () where appropriate. Continue
+ propagating into the rhs if we propagated into an INDIRECT_REF
+ on the lhs.
+
+2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md (op_type attribute): RRR instruction type added.
+ (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
+ (xde, xdee): Mode attributes adjusted to support DFP modes.
+ (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
+ ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
+ DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
+ "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
+ "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
+ "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
+ "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
+ numbers.
+ ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
+ "movsf"): Insn definitions removed.
+ ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
+ "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
+ "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
+ definitions added.
+ ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
+ "reload_in<mode>", "reload_out<mode>"): Expander added.
+ ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
+ Expander removed.
+
+2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md: Only non-functional changes. Renamed
+ FPR mode macro to BFP all over the file.
+
+2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
+ (op_type attribute): RRF instruction type added.
+ (fT0): New mode attribute.
+ ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
+ "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
+ * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
+ no secondary memory is needed when moving DFmode values between GPRs
+ and FPRs.
+
+2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
+ inverted and documentation adjusted.
+ ("mhard-dfp", "msoft-dfp"): New options.
+ * config/s390/s390.c (s390_handle_arch_option): New architecture
+ switch: z9-ec.
+ (override_options): Sanity checks for the new options added.
+ * config.gcc: New architecture switch: z9-ec.
+ * config/s390/s390.h (processor_flags): PF_DFP added.
+ (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
+ (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
+ when the bit is NOT set so remove it from the defaults.
+
+2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * genemit.c (main): Print include statement for dfp.h.
+ * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
+ is not available.
+
+2007-03-19 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
+
+2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/31022
+ * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
+ instead of PATTERN.
+
+2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
+ attr_length_call, output_call, output_indirect_call): Cleanup
+ formatting of targetm calls.
+
+2007-03-19 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
+
+2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md: Add fpstore_load and store_fpload instruction types. Provide
+ reservation, bypass and anti-bypass descriptions for these instructions.
+ Update move patterns.
+ * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
+ TYPE_FPSTORE.
+
+2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (get_initial_def_for_induction): Replace
+ GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
+ (get_initial_def_for_reduction): Likewise.
+
+2007-03-16 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/29922
+ * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
+ (get_representative): Removed.
+ (value_dies_in_block_x): Update for rvuse removal.
+ (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
+ (compute_antic_aux): Handle when PHI nodes appear in
+ non-single-successors.
+ (dump_bitmap_of_names): Removed.
+ (compute_antic_safe): Renamed and removed rvuse calculation.
+ Calculate only antic safe.
+ (insert_into_preds_of_block): Remove assert.
+ (execute_pre): Update for renamed functions.
+ (defer_or_phi_translate_block): New function.
+
+2007-03-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
+ config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
+ typos.
+ * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
+ Follow spelling conventions.
+
+ * tree-data-ref.h: Remove the prototype for analyze_array.
+
+2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/31041
+ * tree-vect-transform.c (get_initial_def_for_induction): Call
+ force_gimple_operand.
+
+2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
+
+ * ipa-type-escape.c (look_for_casts) : Revert code to use
+ handled_component_p due to ada test a-numaux.adb.
+
+2007-03-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * final.c (final_scan_insn): Alter the condition of a
+ conditional trap if we have nonstandard CC.
+
+2007-03-16 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.ac: Remove excess quoting from asm line 0 test.
+ * configure: Rebuilt.
+
+2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
+ * c-common.c (convert_and_check): Move warning logic to...
+ (warnings_for_convert_and_check): ...here. Define.
+ * c-common.h (warnings_for_convert_and_check): Declare.
+
+2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (attr_length_call): Partially revert change of 2007-03-09.
+ (output_call): Likewise.
+
+2007-03-16 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
+
+2007-03-16 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
+
+2007-03-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
+ opteron, athlon-64 and athlon-fx processor_alias_table entries.
+
+2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
+
+ PR tree-optimization/31183
+ * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
+ Use double_int instead of unsigned int for representing access_strides.
+ * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
+
+2007-03-16 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31146
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
+ to allow recursion of forward_propagate_addr_expr.
+ (forward_propagate_addr_into_variable_array_index): Likewise.
+ (forward_propagate_addr_expr): Likewise.
+ (tree_ssa_forward_propagate_single_use_vars): Likewise.
+ (forward_propagate_addr_expr_1): Recurse on simple copies
+ instead of propagating into them. Do so for useless conversions
+ as well.
+ (forward_propagate_addr_expr): Clean up unused statements after
+ recursion.
+
+2007-03-16 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_cexpi): Use the right argument
+ for the expansion via cexp.
+
+2007-03-16 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.ac: Don't require ELF binutils to tolerate # 0 "".
+ * configure: Rebuilt.
+
+2007-03-16 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/29906
+ * dwarf2out.c (force_type_die): Adjust comment.
+ (dwarf2out_imported_module_or_decl): Handle base AT_import types.
+
+2007-03-15 DJ Delorie <dj@redhat.com>
+
+ * config/frv/predicates.md (minmax_operator): Don't check operands
+ here.
+
+2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
+ Update constant estimates of number of iterations.
+ (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
+ argument renamed to "realistic".
+ (compute_estimated_nb_iterations): Removed.
+ (record_niter_bound): New function.
+ (idx_infer_loop_bounds): For possible but unlikely tail arrays,
+ call record_nonwrapping_iv with upper = false.
+ (infer_loop_bounds_from_signedness): Pass upper argument to
+ record_nonwrapping_iv.
+ (estimate_numbers_of_iterations_loop): Do not call
+ compute_estimated_nb_iterations. Record estimate based on profile
+ information. Initialize the constant estimates of number of
+ iterations.
+ * tree-data-ref.c (estimated_loop_iterations): Return the recorded
+ estimates.
+ * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
+ number of iterations is too small.
+ * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
+ (EST_NOT_AVAILABLE): Removed.
+ (struct loop): Replace estimated_nb_iterations by any_upper_bound,
+ nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
+ fields.
+
+2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
+ Handle NE_EXPR guards.
+
+2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/24924
+ * c-opts.c (c_common_post_options): Handle C++ post-processing here.
+ Set also -pedantic-errors by default for the preprocessor unless
+ -fpermissive is given.
+
+2007-03-15 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/29719
+ PR middle-end/31161
+ * builtins.c (expand_builtin_cexpi): As a fallback if we
+ don't have builtins for sincos or cexp create a function
+ declaration for cexp and expand to a call to that.
+ (expand_builtin_int_roundingfn): Always fall
+ back to floor/ceil and its variants even if they may be
+ not available.
+
+2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/31159
+ * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
+ jump tables, move the call to delete_dead_jumptables from here...
+ (cfg_layout_finalize): ...to here. But rebuild jump labels first.
+ * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
+ don't allow merging of blocks that try_redirect_by_replacing_jump
+ also does not handle when not optimizing.
+
2007-03-15 Uros Bizjak <ubizjak@gmail.com>
Francois-Xavier Coudert <coudert@clipper.ens.fr>