OSDN Git Service

PR fortran/27885
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ebdf75f..f2aafc1 100644 (file)
@@ -1,3 +1,210 @@
+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