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