OSDN Git Service

2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1994bf9..2195e41 100644 (file)
@@ -1,3 +1,360 @@
+2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (processor_target_table): Increase maximum
+       skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
+       default 64bit.
+
+       * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
+       byte alignment if > 8 byte alignment is preferred.
+       * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+
+2007-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/31866
+       * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
+       if ASM_EXPR's input is not a SSA_NAME.
+
+       PR middle-end/32362
+       * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
+       but decl is a global var, instead return decl.
+       * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
+       even for is_global_var decls, if they are private in some outer
+       context.
+
+2007-06-21  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/32451
+       * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
+
+2007-06-21  Christian Bruel  <christian.bruel@st.com>
+
+       * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
+       * config/sh/sh.c (sh_loads_bankedreg_p): New function.
+       (push_regs): Changed saving order or banked registers.
+       (sh_expand_epilogue): Likewise.
+       * config/sh/sh.h (BANKED_REGISTER_P): New macro.
+       (FIRST_BANKED_REG): Likewise.
+       (LAST_BANKED_REG): Likewise.
+       * config/sh/sh.md (banked) New attribute.
+       (in_delay_slot): Check banked attribute.
+       
+2007-06-20  Sebastian Pop  <sebpop@gmail.com>
+
+       PR tree-optimization/32075
+       * tree-data-ref.c (subscript_dependence_tester_1, 
+       analyze_miv_subscript, analyze_overlapping_iterations,
+       add_distance_for_zero_overlaps, build_classic_dist_vector,
+       subscript_dependence_tester_1, analyze_overlapping_iterations,
+       subscript_dependence_tester, access_functions_are_affine_or_constant_p,
+       compute_affine_dependence, compute_all_dependences): Pass loop_nest 
+       to evolution_function_is_affine_multivariate_p.
+
+2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
+
+2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       PR target/32335
+       * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
+       for TARGET_A16.
+       * config/m32c/prologue.md (epilogue_exitd_16): New.
+       (epilogue_reit_16): New.
+       (epilogue_exitd): Rename to epilogue_exitd_24.
+       (epilogue_reit): Rename to epilogue_reit_24.
+
+2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
+            Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
+       New counters.
+       * haifa-sched.c (queue_to_ready): Don't requeue next insn
+       if dbg_cnt (sched_insn) reaches the limit.
+       (choose_ready): New parameter INSN_PTR and new return value.
+       (schedule_block): Handle dbg_cnt (sched_insn). Handle
+       the new return value from choose_ready.
+       * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
+       (rest_of_handle_global_alloc): New global_alloc_at_func.
+
+2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
+
+       PR tree-optimization/25737
+       * tree.h (struct tree_struct_field_tag): Add new field alias_set.
+       (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
+       * tree-flow.h (struct fieldoff): Add new field alias_set.
+       * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
+       argument addressable_type.  Set alias_set of fieldoff.
+       * tree-ssa-alias.c (create_sft): Add new argument alias_set.
+       (create_overlap_variables_for): Pass alias_set from fieldoff to
+       create_sft.
+       * alias.c (get_alias_set): Use alias_set from SFT if set.
+
+2007-06-20  Hui-May Chang  <hm.chang@apple.com>
+
+       * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
+       of a variable as an unsigned HOST_WIDE_INT integer.
+
+2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR rtl-optimization/32405
+       * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
+
+2007-06-20  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
+
+       PR middle-end/31959
+       * builtins.c: Include diagnostic.h.
+       (expand_builtin_expect): Make gcc_assert more permissive.
+       * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
+
+       PR inline-asm/32109
+       * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
+       and !allows_mem.
+
+       PR middle-end/32285
+       * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
+       if ACCUMULATE_OUTGOING_ARGS.
+
+2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       * config/m68hc11/m68hc11.c: Include dataflow header file.
+       (m68hc11_reorg): Port to dataflow.
+
+2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
+       (struct df_problem.free_blocks_on_set_blocks): New field.
+       (struct dataflow.optional_p): New field.
+       (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
+       (df_live_set_all_dirty): New function.
+       * df-scan.c (df_scan_alloc): Initialize optional_p.
+       (problem_SCAN): Initialize free_blocks_on_set_blocks.
+       * df-core.c (df_set_blocks): Removed use of
+       DF_FIRST_OPTIONAL_PROBLEM.  Now uses
+       df_problem.free_blocks_on_set_blocks to determine which blocks are
+       recycled.
+       (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
+       (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
+       uses dataflow.optional_p to determine if problem should be
+       deleted.
+       (rest_of_handle_df_initialize): Only start live problem if 
+       -02 or above.
+       (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
+       * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
+       df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
+       (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
+       problem_NOTE):  Initialize free_blocks_on_set_blocks.
+       (df_lr_bb_local_compute): Recompute luids if df_live problem is
+       not active.
+       (df_live_set_all_dirty, df_note_alloc): New function.
+       * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
+       df_get_live_*.
+       * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
+       * postreload.c (reload_combine): Ditto.
+       * cse.c (cse_extended_basic_block): Ditto.
+       * regmove.c (mark_flags_life_zones): Ditto.
+       * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
+       erase_matching_seqs): Ditto.
+       * bt-load.c (compute_defs_uses_and_gen): Ditto.
+       * integrate (allocate_initial_values): Ditto.
+       * combine.c (reg_dead_at_p): Ditto.
+       * resource.c (mark_target_live_regs): Ditto.
+       * sched-rgn.c (check_live_1, update_live_1): Ditto.
+       * config/sh/sh.c (find_r0_life_regions): Ditto.
+       * global.c (rest_of_handle_global_alloc): Only add back df_live
+       for -O > 1.
+       * local-alloc.c (rest_of_handle_local_alloc): Only remove
+       df_live for -O > 1.
+       * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
+       df_get_live_*.
+       (if_convert): Make sure df_live is there at -O == 1.
+       (pass_if_after_combine): Cleanup flags.
+       * init-regs.c (initialize_uninitialized_regs): Make sure df_live
+       is there at -O == 1.
+       
+2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
+
+       * config/arm/arm.c (arm_get_frame_offsets): Set
+       offsets->locals_base to avoid negative stack size.
+       (thumb1_expand_prologue): Assert on negative stack size.
+
+2007-04-19  Sebastian Pop  <sebpop@gmail.com>
+
+       PR tree-optimization/32367
+       * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
+       of the chrec has no evolution in that loop.
+       * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
+
+2007-06-19  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c: Include "df.h".
+       (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
+       (xtensa_va_start): Invoke make_tree with sizetype for
+       expand_builtin_saveregs and then convert the result to a pointer.
+       Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
+       (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
+       Subtract argument size from index value as integers and then use
+       POINTER_PLUS_EXPR to add the result to the array address.
+       
+2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       PR target/32335
+       * config/m32c/m32c.c: Include dataflow header file.
+       (m32c_emit_prologue): Adjust for prologue insn change.
+       * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
+       once inside a PARALLEL. Assume frame size passed in operand 0
+       includes space to save the fb register.
+       (prologue_enter_24): Likewise.
+       (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
+
+2007-06-19  David Daney  <ddaney@avtrex.com
+
+       PR target/32313
+       * config/mips/mips.md (cprestore): Mark $gp as used.
+
+2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       PR target/32369
+       * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
+       (frv_ifcvt_modify_insn): Likewise.
+
+2007-06-19  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
+       only handle positive offsets that fit in a HOST_WIDE_INT.
+
+2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
+       result of rsqrt insn for zero input argument to avoid NaN.
+
+2007-06-19  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/31950
+       * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
+
+2007-06-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/32353
+       * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
+
+2007-06-19  Nick Clifton  <nickc@redhat.com>
+
+       * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for
+       -pthread.
+
+2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/32389
+       * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
+       * config/i386/i386.c (assign_386_stack_local): Assert that
+       SLOT_VIRTUAL is valid only before virtual regs are instantiated.
+       (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
+       Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
+       * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
+
+2007-06-18  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
+
+2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
+
+       PR rtl-optimization/32321
+       * gcse.c (replace_store_insn): Update the note before
+       calling emit_insn_after.
+
+2007-06-18  David Daney  <ddaney@avtrex.com
+
+       Revert:
+
+       2007-06-18  David Daney  <ddaney@avtrex.com
+
+       PR target/32313
+       * config/mips/mips.c (mips_expand_call): Mark $gp as used by
+       local function call.
+
+2007-06-18  David Daney  <ddaney@avtrex.com
+
+       PR target/32313
+       * config/mips/mips.c (mips_expand_call): Mark $gp as used by
+       local function call.
+
+2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR middle-end/32355
+       * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
+       cse_main.
+       * df-problems.c (df_note_bb_compute): Fix dumping info.
+       
+2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
+       insn with emit_jump_insn.
+
+2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/32383
+       * targhooks.c (default_builtin_reciprocal): Add new bool argument.
+       * targhooks.h (default_builtin_reciprocal): Update prototype.
+       * target.h (struct gcc_target): Update builtin_reciprocal.
+       * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
+       * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
+       where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
+       when fndecl is in BUILT_IN_MD class.
+       (execute_convert_to_rsqrt): Ditto.
+
+       * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
+       argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
+       Convert BUILT_IN_SQRTF code only  when md_fn is false.
+
+2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * bt-load.c (move_btr_def): Fix the order of arguments
+       to validate_replace_rtx.
+
+2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/m68k/m68k-devices.def: Add 54450..54455.
+
+2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR rtl-optimization/32366
+       * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
+       FLOAT_EXTEND]: Prevent non-scalar modes from entering
+       significand_size.
+
+2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR middle-end/32349
+       * modulo-sched (generate_reg_moves): Added rescan parameter and if
+       this is true, rescan insn being modified.
+       (sms_schedule): Added rescan parameter.
+       (rest_of_handle_sms): Moved freeing of dominance info to before
+       getting out of cfg_layout.
+       
+2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
+       * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
+       appropriate.
+
+       * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
+       FL_CF_EMAC from the entry for isac.
+
+       * config/m68k/predicates.md (const_call_operand): Adjust comment.
+       (const_sibcall_operand): New.
+       (sibcall_operand): Use it.
+       * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
+       (m68k_isas): ISAC does not imply FPU or EMAC.
+       (override_options): Add ISA_C logic for symbolic jump & call.
+
+2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
+       return mode from the builtin itself.
+       (sparc_fold_builtin): Fix cast of zero constant.
+
 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
 
        * targhooks.c (default_builtin_reciprocal): New default target hook.
 
        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
        to the exit block use set.
+       (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.