+2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/29114
+ * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
+ larger than BITS_PER_WORD.
+
+2006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR fortran/27885
+ PR middle-end/28176
+ * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
+ to MAX_FIXED_MODE_SIZE.
+
+2006-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (integer_valued_real_p): Handle fmin/fmax.
+ (fold_builtin_fmin_fmax): New.
+ (fold_builtin_1): Use it.
+
+ * fold-const.c (fold_strip_sign_ops): Handle copysign.
+
+2006-11-18 Richard Guenther <rguenther@suse.de>
+
+ * config/i386/i386.c (ix86_builtins): New array for ix86
+ builtin function decls.
+ (def_builtin): New function.
+ (def_builtin_const): Likewise.
+ (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
+
+2006-11-18 Vladimir Makarov <vmakarov@redhat.com>
+
+ * doc/invoke.texi (core2): Add item.
+
+ * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
+ macros.
+ (TARGET_CPU_CPP_BUILTINS): Add code for core2.
+ (TARGET_CPU_DEFAULT_generic): Change value.
+ (TARGET_CPU_DEFAULT_NAMES): Add core2.
+ (processor_type): Add new constant PROCESSOR_CORE2.
+
+ * config/i386/i386.md (cpu): Add core2.
+
+ * config/i386/i386.c (core2_cost): New initialized variable.
+ (m_CORE2): New macro.
+ (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
+ x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
+ x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
+ x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
+ x86_partial_reg_dependency, x86_memory_mismatch_stall,
+ x86_accumulate_outgoing_args, x86_prologue_using_move,
+ x86_epilogue_using_move, x86_arch_always_fancy_math_387,
+ x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
+ x86_use_incdec, x86_four_jump_limit, x86_schedule,
+ x86_pad_returns): Add m_CORE2.
+ (override_options): Add entries for Core2.
+ (ix86_issue_rate): Add case for Core2.
+
+2006-11-18 Aldy Hernandez <aldyh@redhat.com>
+
+ * doc/invoke.texi: Fix mno-isel typo.
+
+2006-11-18 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/spe.md (movv4hi_internal): Add alternative for
+ easy vector constant loads.
+
+2006-11-18 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+ __NO_LWSYNC__ if TARGET_NO_LWSYNC.
+ * config/rs6000/sync.md (lwsync): Emit plain sync if
+ TARGET_NO_LWSYNC.
+
+2006-11-17 DJ Delorie <dj@redhat.com>
+
+ * reload1.c (reloads_unique_chain): New.
+ (reloads_conflict): Call it.
+
+2006-11-17 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/predicates.md (addsubx_operand): New.
+ * config/xtensa/xtensa.c (xtensa_emit_branch): New.
+ (xtensa_emit_bit_branch): New.
+ (xtensa_emit_movcc): New.
+ * config/xtensa/xtensa.md (any_minmax): New code macro.
+ (minmax): New code attribute.
+ (any_cond, any_scc, any_scc_sf): New code macros.
+ (*addx2, *addx4, *addx8): Delete.
+ (*addx): New.
+ (*subx2, *subx4, *subx8): Delete.
+ (*subx): New.
+ (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
+ (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
+ (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
+ (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
+ (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
+ (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
+ (movsfcc_internal0, movsfcc_internal1): Likewise.
+ (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
+ * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
+ (xtensa_emit_bit_branch): New.
+ (xtensa_emit_movcc): New.
+ (function_arg_boundary): Add missing prototype.
+
+2006-11-17 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (tstsi): Delete
+
+2006-11-17 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
+
+2006-11-17 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
+
+2006-11-17 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
+
+2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-vrp.c (execute_vrp): Do not update current_loops.
+ * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
+ * doc/loop.texi: Remove documentation for cancelled functions.
+ * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
+ (move_computations, determine_lsm): Use bsi_commit_edge_inserts
+ instead.
+ * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
+ (remove_path): Ensure that in delete_basic_blocks, the loops
+ are still allocated.
+ (add_loop): Work on valid loop structures.
+ (loopify): Modify call of add_loop.
+ (mfb_update_loops): Removed.
+ (create_preheader): Do not update loops explicitly.
+ (force_single_succ_latches, loop_version): Do not use
+ loop_split_edge_with.
+ (loop_split_edge_with): Removed.
+ * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
+ Do not use bsi_insert_on_edge_immediate_loop.
+ (split_loop_exit_edge, tree_unroll_loop): Do not use
+ loop_split_edge_with.
+ (bsi_insert_on_edge_immediate_loop): Removed.
+ * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not
+ use loop_split_edge_with.
+ * cfghooks.c: Include cfgloop.h.
+ (verify_flow_info): Verify that loop_father is filled iff current_loops
+ are available.
+ (redirect_edge_and_branch_force, split_block, delete_basic_block,
+ split_edge, merge_blocks, make_forwarder_block, duplicate_block):
+ Update cfg.
+ * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
+ no loops.
+ * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
+ loop_split_edge_with.
+ (sms_schedule): Use current_loops.
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
+ * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
+ current_loops.
+ (rtl_loop_init, rtl_loop_done): Do not set current_loops.
+ * tree-ssa-sink.c (execute_sink_code): Use current_loops.
+ * ifcvt.c (if_convert): Ditto.
+ * predict.c (predict_loops): Do not clear current_loops.
+ (tree_estimate_probability): Use current_loops.
+ (propagate_freq): Receive head of the region to propagate instead of
+ loop.
+ (estimate_loops_at_level): Do not use shared to_visit bitmap.
+ (estimate_loops): New function. Handle case current_loops == NULL.
+ (estimate_bb_frequencies): Do not allocate tovisit. Use
+ estimate_loops.
+ * tree-ssa-loop.c (current_loops): Removed.
+ (tree_loop_optimizer_init): Do not return loops.
+ (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
+ * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
+ slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
+ Do not update loops explicitly.
+ * function.h (struct function): Add x_current_loops field.
+ (current_loops): New macro.
+ * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
+ * loop-unroll.c (split_edge_and_insert): New function.
+ (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
+ use loop_split_edge_with.
+ * loop-doloop.c (add_test, doloop_modify): Ditto.
+ * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
+ * cfglayout.c (copy_bbs): Do not update loops explicitly.
+ * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
+ * tree-vect-transform.c (vect_transform_loop): Do not update loops
+ explicitly.
+ * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
+ (flow_loops_free): Do not free dfs_order and rc_order.
+ (flow_loops_find): Do not set dfs_order and rc_order in loops
+ structure. Do not call loops and flow info verification.
+ (add_bb_to_loop, remove_bb_from_loops): Check whether the block
+ already belongs to some loop.
+ * cfgloop.h (struct loops): Remove struct cfg.
+ (current_loops, loop_split_edge_with): Declaration removed.
+ (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
+ * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
+ Declaration removed.
+ * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
+ * basic-block.h (split_edge_and_insert): Declare.
+ * tree-cfg.c (remove_bb): Do not update loops explicitly.
+
+2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/29801
+ * tree-ssa-ccp.c (get_symbol_constant_value): New function.
+ (get_default_value): Use get_symbol_constant_value.
+ (set_lattice_value): ICE when the value of the constant is
+ changed.
+ (visit_assignment): Ignore VDEFs of read-only variables.
+
+2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
+ formating.
+ (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
+ vect_gen_niters_for_prolog_loop): Fold the emited expressions.
+
+2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
+ select subvars of var.
+
+2006-11-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/29584
+ * tree-ssa-forwprop.c (simplify_switch_expr): Don't
+ optimize if DEF doesn't have integral type.
+
+2006-11-16 Mike Stump <mrs@apple.com>
+
+ * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
+ pre-darwin9 system, unless the user asks for it directly.
+ (PREFERRED_DEBUGGING_TYPE): Likewise.
+ * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
+ * config.gcc: Add suppport for darwin9.h.
+ * config/darwin9.h: Add.
+ * doc/install.texi (Specific): Clarify darwin documentation.
+
+2006-11-16 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
+ optimizing for size.
+
+2006-11-16 Mike Stump <mrs@apple.com>
+
+ * Makefile.in (targhooks.o): Add $(OPTABS_H).
+
+2006-11-16 Dirk Mueller <dmueller@suse.de>
+
+ * tree-vrp.c (get_value_range): Use XCNEW instead
+ of XNEW and memset.
+ (insert_range_assertions): Use XCNEWVEC instead
+ of XNEWVEC and memset.
+ (vrp_initialize): Same.
+ (vrp_finalize): Same.
+ * tree-ssa-ccp.c (ccp_initialize): Same.
+ * predict.c (tree_bb_level_predictions): Same.
+ * calls.c (expand_call): Same.
+ * tree-ssa-copy.c (init_copy_prop): Same.
+ (fini_copy_prop): Same.
+ * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
+ of GGC_NEW and memset.
+
+2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/26306
+ * gimplify.c (gimplify_expr): Only force a load for references to
+ non-BLKmode volatile values.
+ * doc/implement-c.texi (Qualifiers implementation): Document the
+ interpretation of what a volatile access is.
+ * doc/extend.texi (C++ Extensions): Rework same documentation.
+
+2006-11-16 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
+ memory operand.
+
+2006-11-16 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for
+ Thumb.
+ (arm_neg_abssi2): Renamed from neg_abssi2.
+ (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
+
+2006-11-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
+ number of arguments passed to local functions in SSE registers is 3.
+
+ * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
+ number of arguments passed in SSE registers to 3.
+
+2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ PR target/29201
+ * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
+ bb to ...
+ (get_last_bb_insn): ... new global function.
+ (basic_block.h): Declare it.
+ * haifa-sched.c (create_recovery_block): Use it.
+
+2006-11-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/29862
+ * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
+
+2006-11-15 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
+ _Unwind_GetTextRelBase): Move from here ...
+ * config/arm/pr-support.c (_Unwind_GetDataRelBase,
+ _Unwind_GetTextRelBase): ... To here.
+
+2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
+ addresses we generate for testing are aligned.
+
+2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/29788
+ * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
+ to what is the const decl is a place holder for.
+
+2006-11-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.opt: New target option -mx87regparm.
+
+ * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
+ and float_in_x87 variables. mmx_words, sse_words: Remove.
+ (X87_REGPARM_MAX): Define.
+
+ * config/i386/i386.c (override_options): Error out for
+ -mx87regparm but no 80387 support.
+ (ix86_attribute_table): Add x87regparm.
+ (ix86_handle_cconv_attribute): Update comments for x87regparm.
+ (ix86_comp_type_attributes): Check for mismatched x87regparm types.
+ (ix86_function_x87regparm): New function.
+ (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
+ point registers.
+ (init_cumulative_args): Initialize x87_nregs and float_in_x87
+ variables.
+ (function_arg_advance): Process x87_nregs and x87_regno when
+ floating point argument is to be passed in 80387 register.
+ (function_arg): Pass XFmode arguments in 80387 registers for local
+ functions. Pass SFmode and DFmode arguments to local functions
+ in 80387 registers when flag_unsafe_math_optimizations is set.
+
+ * reg-stack.c (convert_regs_entry): Disable NaN load for
+ stack registers that are used for argument passing.
+
+ * doc/extend.texi: Document x87regparm function attribute.
+ * doc/invoke.texi: Document -mx87regparm.
+
+2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
+ * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
+ arg MODE; all callers changed. Use it to determine validity per
+ machine mode instead of using Pmode for all memory references.
+ (get_address_cost): Likewise add and use new arg MEM_MODE.
+
+2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
+ J"orn Rennecke <joern.rennecke@st.com>
+
+ * combine.c (likely_spilled_retval_1): Fix masking operation.
+ (likely_spilled_retval_p): Use proper pattern for call to
+ likely_spilled_retval_1.
+
+2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
+
+ * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
+ that tests for CONSTANT_POOL_ADDRESS_P.
+
+2006-11-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/29581
+ * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
+ REPLACEMENTS, FIRSTBSI arguments. If initial condition or
+ type is different between Y and USE, create a temporary
+ variable, initialize it at the beginning of the body bb
+ and use it as replacement instead of Y.
+
+2006-11-15 Paolo Bonzini <bonzini@gnu.org>
+
+ PR middle-end/29753
+ * gimplify.c (fold_indirect_ref_rhs): Use
+ STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
+
+2006-11-14 Richard Earnshaw <rearnsha@arm.com>
+
+ * expmed.c (emit_store_flag_1): New function.
+ (emit_store_flag): Call it. If we can't find a suitable scc insn,
+ try a cstore insn.
+ * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
+ Use do_compare_rtx_and_jump.
+ * arm.h (BRANCH_COST): Increase to 2 on Thumb.
+ * arm.md (cstoresi4): New define_expand.
+ (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
+ (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
+ (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
+
+2006-11-14 Caroline Tice <ctice@apple.com>
+
+ * dwarf2out.c (debug_pubtypes_section): New static global variable.
+ (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
+ this type.
+ (pubname_table): Redefine as a vector.
+ (pubtype_table): New static global variable, defined as a vector.
+ (pubname_table_allocated): Remove static global variable.
+ (pubname_table_in_use): Remove static global variable.
+ (PUBNAME_TABLE_INCREMENT): Remove constant.
+ (size_of_pubnames): Add parameter to deal with either pubnames or
+ pubtypes, and change code to deal with table being a vector.
+ (add_pubname): Change to deal with table being a vector.
+ (add_pubtype): New function.
+ (output_pubnames): Add parameter to deal with either pubnames or
+ pubtypes, and change code to deal with table being a vector.
+ (gen_array_type_die): Add call to add_pubtype.
+ (gen_enumeration_type_die): Add call to add_pubtype.
+ (gen_struct_or_union_type_die): Add call to add_pubtype.
+ (gen_subroutine_type_die): Add call to add_pubtype.
+ (gen_typedef_die): Add call to add_pubtype.
+ (dwarf2out_init): Add code to initialize pubname_table and
+ pubtype_table vectors; also initialize debug_pubtypes_section.
+ (prune_unused_types): Change to deal with pubnames being a vector.
+ (dwarf2out_finish): Change to deal with pubnames being a vector; add
+ pubnames table to call to output_pubnames; Add code to output pubtypes
+ table if DEBUG_PUBTYPES_SECTION is defined.
+ * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to
+ debugnames.
+ * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
+
+2006-11-14 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
+ iwmmxt_nregs if TARGET_IWMMXT_ABI.
+ * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
+ movv2si_internal): Support moves between core registers.
+
+2006-11-14 Eric Christopher <echristo@apple.com>
+
+ * configure: Regenerate with autoconf 2.59.
+
+2006-11-14 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/27755
+
+ * tree-ssa-pre.c: Update comments.
+ (bb_bitmap_sets): Add pa_in and deferred member.
+ (BB_DEFERRED): New macro.
+ (maximal_set): New variable.
+ (pre_stats): Add pa_insert member.
+ (bitmap_set_and): Short circuit orig == dest.
+ (bitmap_set_subtract_values): New function.
+ (bitmap_set_contains_expr): Ditto.
+ (translate_vuses_through_block): Add phiblock argument.
+ (dependent_clean): New function.
+ (compute_antic_aux): Update for maximal_set changes.
+ (compute_partial_antic_aux): New function.
+ (compute_antic): Handle partial anticipation.
+ (do_partial_partial_insertion): New function.
+ (insert_aux): Handle partial anticipation.
+ (add_to_sets): Add to maximal set.
+ (compute_avail): Ditto.
+ (init_pre): Initialize maximal_set.
+ (execute_pre): Do partial anticipation if -O3+.
+
+2006-11-14 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/29798
+
+ * fwprop.c (use_killed_between): Check that DEF_INSN dominates
+ TARGET_INSN before any other check.
+ (fwprop_init): Always calculate dominators.
+ (fwprop_done): Always free them.
+
+2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
+ COND_EXPR.
+
+2006-11-13 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
+ temporary for intermediates.
+
+2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
+ (sh_optimize_target_register_callee_saved): #if 0 the code
+ using NOTE_INSN_LOOP_{BEG,END}.
+
+2006-11-13 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (optimize_bit_field_compare): Recursively call
+ fold when simplifying non-constant comparisons between bit-fields.
+
+2006-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
+ test.
+ * configure: Rebuilt.
+
+2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/cell.md: New file.
+ * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
+ variable.
+ (ppccell_cost): New cost matrix.
+ (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
+ (rs6000_override_options): Set rs6000_always_hint to false
+ for cell. Also align functions/lables/loops to 8byte
+ for the Cell. Use PROCESSOR_CELL.
+ (rs6000_emit_epilogue): Rename using_mfcr_multiple to
+ using_mtcr_multiple.
+ (rs6000_variable_issue): If the insn is a nonpipelined instruction
+ on the Cell, return 0.
+ (rs6000_adjust_cost): Add Cell cost adjustments.
+ (is_microcoded_insn): Return true for Cell microcoded
+ instructions.
+ (is_nonpipeline_insn): New function.
+ (rs6000_issue_rate): Add PROCESSOR_CELL.
+ (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
+ instructions.
+ (rs6000_use_sched_lookahead_guard): New function.
+ (rs6000_sched_reorder): Reorder the ready list, if the second
+ to last ready insn is a nonepipeline insn on the Cell.
+ * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
+ (ASM_CPU_SPEC): Add Cell.
+ * config/rs6000/rs6000.md (cpu): Add Cell.
+ (cell_micro): New Attr.
+ Include cell.md
+
+2006-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
+ style versions.
+ * configure: Rebuilt.
+
+2006-11-13 Richard Guenther <rguenther@suse.de>
+
+ * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
+ return value.
+ (ix86_expand_lfloorceil): Likewise.
+ (ix86_expand_rint): Likewise.
+ (ix86_expand_floorceildf_32): Likewise.
+ (ix86_expand_floorceil): Likewise.
+ (ix86_expand_rounddf_32): Likewise.
+ (ix86_expand_truncdf_32): Likewise.
+ (ix86_expand_round): Likewise.
+
+2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.c: Organize search path variables into $prefix relative,
+ and well-known native. Add comments.
+ (add_sysrooted_prefix): Add comment.
+ (process_command): If !gcc_exec_prefix add $prefix based paths.
+ If *cross_compile == '0', add native well-known paths.
+ Assert tooldir_base_prefix is always relative.
+ (main): If print_search_dirs, and if gcc_exec_prefix is set,
+ use this value for 'install:' path.
+ * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
+
+2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c: Fix a typo in comment.
+
+2006-11-13 Michael Matz <matz@suse.de>
+
+ * genemit.c (gen_expand): Allocate enough memory.
+
+2006-11-13 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
+ __GXX_TYPEINFO_EQUALITY_INLINE but not
+ __GXX_MERGED_TYPEINFO_NAMES.
+ * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
+ __GXX_MERGED_TYPEINFO_NAMES.
+ * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
+ __GXX_TYPEINFO_EQUALITY_INLINE.
+
+2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
+ Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/29680
+ * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
+ PR 14784.
+
+2006-11-12 Jason Merrill <jason@redhat.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/28915
+ * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
+ vector ctors.
+ * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
+ vector ctors.
+ * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
+ * tree.c (build_vector): Handle non-_CST elements.
+
+2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * genemit.c (gen_insn): Call gen_exp with a non-null used
+ when handling multiple insns.
+ (gen_expand): Likewise.
+ * reorg.c (emit_delay_sequence): Copy the delay slot insn.
+ * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
+ (movsi_const_16bit+1): Copy operands[1].
+ (call_pcrel): Copy the call_site pattern.
+ (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
+
+2006-11-12 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
+ condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
+ && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
+ (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
+
+2006-11-12 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/29587
+ * tree-ssa-structalias.c (process_constraint): Don't
+ mark address taken due only to escaped vars constraint.
+
+2006-11-12 Michael Matz <matz@suse.de>
+ Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/29797
+ * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
+ BITS_BIG_ENDIAN targets.
+
+2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_cosh): New.
+ (fold_builtin_1): Use it.
+ * fold-const.c (negate_mathfn_p): Add llround, lround, round,
+ trunc to the list of "odd" functions. Also add llrint, lrint,
+ rint and nearbyint when flag_rounding_math is false.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-flow.h (name_mappings_registered_p): Declare.
+ * tree-into-ssa.c (name_mappings_registered_p): New function.
+ * tree-cfg.c (tree_can_merge_blocks_p): Check
+ name_mappings_registered_p instead of need_ssa_update_p.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop.c (tree_vectorize): Return the result of
+ vectorize_loops.
+ * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
+ if anything changed.
+ * tree-vectorizer.h (vectorize_loops): Declaration removed.
+ * tree-flow.h (vectorize_loops): Declaration changed.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
+ comments.
+ (issue_prefetch_ref): Move assignment to write_p out of loop.
+ (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
+ SIMULTANEOUS_PREFETCHES into account.
+ (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
+ * lambda-code.c (lcm): Renamed to ...
+ (least_common_multiple): ... and exported.
+ * tree-flow.h (least_common_multiple): Declare.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
+ * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
+ ud-chains. Handle AND_EXPR.
+ (record_estimate): Record whether the estimate is realistic
+ and whether it is derived from a loop exit.
+ (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
+ infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
+ functions.
+ (compute_estimated_nb_iterations): Take only realistic bounds into
+ account. Set estimate_state. Use double_ints.
+ (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
+ and infer_loop_bounds_from_signedness. Do not consider basic blocks
+ that do not have to be always executed.
+ (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
+ to determine whether to call infer_loop_bounds_from_undefined
+ and compute_estimated_nb_iterations.
+ (n_of_executions_at_most): Use double_ints.
+ (free_numbers_of_iterations_estimates_loop): Set estimate_state.
+ (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
+ * double-int.c (double_int_to_tree): Improve comment.
+ (double_int_fits_to_tree_p): New function.
+ * double-int.h (double_int_fits_to_tree_p): Declare.
+ * tree-data-ref.c: Include langhooks.h.
+ (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
+ (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
+ (analyze_array): Do not pass estimate_only argument to
+ analyze_array_indexes.
+ (get_number_of_iters_for_loop): Build tree from the stored double_int
+ value.
+ (get_references_in_stmt, find_data_references_in_stmt): New functions.
+ (find_data_references_in_loop): Use find_data_references_in_stmt.
+ * tree-data-ref.h (struct data_ref_loc_d): New.
+ (get_references_in_stmt): Declare.
+ (estimate_iters_using_array): Declaration removed.
+ * cfgloop.h (struct nb_iter_bound): Change type of bound to
+ double_int. Improve comments. Add is_exit and realistic
+ fields.
+ (struct loop): Changed type of estimated_nb_iterations to double_int.
+ Added estimate_state field.
+ (record_estimate): Declaration removed.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * params.c (set_param_value): Initialize the "set" field.
+ * params.h (struct param_info): Add "set" field.
+ (PARAM_SET_P): New macro.
+ (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
+ L1_CACHE_LINE_SIZE): New macros.
+ * toplev.c (DEFPARAM): Initialize the "set" field.
+ * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
+ SIMULTANEOUS_PREFETCHES): Removed.
+ (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
+ (tree_ssa_prefetch_arrays): Dump the values of the parameters.
+ * config/sparc/sparc.c: Include params.h.
+ (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
+ Removed.
+ * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
+ Removed.
+ * config/i386/i386.c: Include params.h.
+ (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
+ (override_options): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
+ (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/ia64/ia64.c (ia64_optimization_options): Set
+ SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
+ * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
+ Removed.
+ * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
+ PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
+ * doc/invoke.texi: Document new params.
+
+2006-11-12 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/13827
+ * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
+ as ((X^Y)&C) op 0.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
+ update_single_exit_for_duplicated_loops): New functions.
+ (duplicate_loop_to_header_edge): Use
+ update_single_exit_for_duplicated_loops.
+ * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
+ functions only with ENABLE_CHECKING.
+
+2006-11-12 Andreas Schwab <schwab@suse.de>
+
+ * except.c (sjlj_emit_function_enter): Remove unused variable.
+
+2006-11-11 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (int_binop_types_match_p): New function.
+ (size_binop): Relax constraint that both arguments must both have
+ exactly the same sizetype type. Instead use int_binop_types_match_p.
+ (size_diffop): Likewise.
+
+ (make_range): Use build_int_cst instead of fold_convert.
+ (fold_cond_expr_with_comparison): Use build_int_cst to construct
+ integer constants of the correct type.
+ (fold_div_compare): Likewise.
+ (fold_single_bit_test): Likewise.
+ (fold_binary): Likewise.
+ * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
+ has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
+
+2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/28812
+ * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
+ non null value if the struct memory access is in the 0th
+ aliasing set.
+
+2006-11-12 Jie Zhang <jie.zhang@analog.com>
+
+ Revert
+ 2006-11-11 Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
+ and __BFIN__.
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
+ instead of builtin_define for bfin and BFIN.
+
+2006-11-11 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
+ and __BFIN__.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * extended.texi (__builtin_expect): We no longer require second argument
+ to be constant.
+ * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
+ * builtins.c (expand_builtin_expect): Simplify.
+ (expand_builtin_expect_jump): Kill.
+ * final.c (final_scan_insn): Do not skip the removed notes.
+ * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
+ EXPECTED_VALUE): Remove.
+ * dojump.c (do_jump): Do not care about __builtin_expect.
+ * predict.c (expected_value_to_br_prob): Kill.
+ * function.c (expand_function_end): Do not expand
+ NOTE_INSN_REPEATED_LINE_NUMBER.
+ * print-rtl.c (print_rtx): Do not pretty print the removed notes.
+ * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
+ * cfgexpand.c (add_reg_br_prob_note): Export.
+ * cfgcleanup.c (rest_of_handle_jump2): Do not call
+ expected_value_to_br_prob.
+ * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
+ * rtl.h (add_reg_br_prob_note): Declare.
+
+2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (predict_loops): Kill RTL variant.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
+ * modulo-sched.c (find_line_note): Remove.
+ (loop_canon_p): Do not worry about line number notes.
+ (sms_schedule): Likewise.
+ * cse.c (cse_main): Likewise.
+ * regmove.c (fixup_match_1): Likewise
+ * function.c (emit_return_info_block): Likewise.
+ (expand_function_end): Likewise.
+ (thread_prologue_an_epilogue_insns): Likewise.
+ * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
+ Likewise.
+ * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
+ emit_note_copy_after): Kill.
+ (emit_note_copy): Do not worry about line numbers.
+ * jump.c (purge_line_number_notes): Kill.
+ (pass_purge_lineno_notes): Kill.
+ * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
+ call.
+ * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
+ * passes.c (init_optimization_passes): Don't purge_lineno_notes.
+ * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
+ * tree-pass.h (pass_purge_lineno_notes): Kill.
+ * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
+ rm_redundant_line_notes.
+ * sched-rgb.c (schedule_region): Don't rm_line_notes,
+ rm_redundant_line_notes.
+ * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
+ * haifa-sched.c: Update comment about handling notes.
+ (unlink_line_notes): Kill.
+ (rm_line_notes): Kill.
+ (save_line_notes): Simplify.
+ (rm_redundant_line_notes): Kill.
+
+2006-11-11 Richard Guenther <rguenther@suse.de>
+
+ * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
+ Remove unused tree codes.
+ * tree-vrp.c (extract_range_from_unary_expr): Remove handling
+ of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * tree.c (stabilize_reference): Likewise.
+ * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
+ fold_unary): Likewise.
+ * tree-gimple.c (is_gimple_cast): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-eh.c (tree_could_trap_p): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * tree-cfg.c (verify_expr): Likewise.
+
+2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
+ * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
+ (tree_ssa_prefetch_arrays): Do not dump for removed loops.
+
+2006-11-11 Richard Sandiford <richard@codesourcery.com>
+
+ PR middle-end/27528
+ * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
+ constraints accept neither registers or memories.
+
+2006-11-11 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
+ (NO_PROFILE_COUNTERS): Define as 1.
+
+2006-11-10 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
+ Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
+
+2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
+
+ * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
+
2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
+ (fold_builtin_hypot): Likewise.
+ * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
+
* fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
2006-11-10 Roger Sayle <roger@eyesopen.com>
* local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
in REG_EQUIV notes.
* gcse.c (try_replace_reg): Copy the replacement.
- * i386.c (emit_i387_cw_initialization): Copy stored_mode
+ * i386.c (emit_i387_cw_initialization): Copy stored_mode.
(assign_386_stack_local): Always return copied memory expression
* function.c (instantiate_virtual_regs_in_insn): Copy the operand
duplicates.
2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ PR middle-end/29335
* builtins.c (do_mpfr_arg3): New.
(fold_builtin_1): Handle builtins fma, fmin and fmax.