OSDN Git Service

* tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ae62274..74416ef 100644 (file)
@@ -1,3 +1,387 @@
+2005-06-07  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
+       (thread_stats): New local variable.
+       (redirect_edges): Increment count of threaded edges.
+       (thread_through_all_blocks): Initialize thread_stats.
+       Display number of threaded jumps if TDF_STATS is enabled.
+
+2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
+
+       * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
+       the current bit index with no modulo.
+
+2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       PR 18403 and meta PR 21861.
+       * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
+       * tree-chrec.c: Include cfgloop.h and tree-flow.h.
+       (evolution_function_is_invariant_rec_p,
+       evolution_function_is_invariant_p): New.
+       (chrec_convert): Use an extra parameter AT_STMT for refining the
+       information that is passed down to convert_step.  Integrate the 
+       code that was in count_ev_in_wider_type.
+       * tree-chrec.h (count_ev_in_wider_type): Removed.
+       (chrec_convert): Modify its declaration.
+       (evolution_function_is_invariant_p): Declared.
+       (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
+       * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
+       (scev_probably_wraps_p): Declared.
+       * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
+       (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
+       Use an extra parameter AT_STMT for refining the information that is
+       passed down to convert_step.
+       (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
+       analyze_scalar_evolution_1): Initialize AT_STMT with the current
+       analyzed statement.
+       (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
+       * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
+       can_count_iv_in_wider_type to use convert_step.
+       * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
+       code that is independent of the loop over the known iteration
+       bounds to convert_step_widening, the rest is moved to
+       proved_non_wrapping_p.
+       (scev_probably_wraps_p): New.
+       (can_count_iv_in_wider_type): Renamed convert_step.
+       * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
+       Use scev_probably_wraps_p for computing init_is_max.
+       (vrp_visit_assignment): Pass the current analyzed statement to 
+       adjust_range_with_scev.
+       (execute_vrp): Call estimate_numbers_of_iterations for refining the 
+       information provided by scev analyzer.
+
+2005-06-07  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/predicates.md (sleu_operand): Use
+       IN_RANGE to specify range of operand.
+
+2005-06-07  Steven Bosscher  <stevenb@suse.de>
+
+       PR tree-optimization/21847
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
+       -fnon-call-exceptions, also mark statements inherently
+       necessary if they may throw.
+
+2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
+       ("type"): Add "sem" to 'type' attribute.
+       ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
+       "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
+       "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
+       "*sync_compare_and_swap_ccsi"): New patterns.
+       * config/s390/2064.md: ("z_sem"): New insn_reservation.
+       * config/s390/2084.md: ("x_sem"): New insn_reservation.
+       * config/s390/s390.c: (s390_compare_emitted): New global variable.
+       (s390_emit_compare): Do not emit comparison again after cas.
+       * config/s390/s390.h (s390_compare_emitted): Declare.
+
+2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
+
+       * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
+       sbitmap_iter_cond, sbitmap_iter_next): New.
+       * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
+       modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
+       tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
+       uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
+
+2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-address.c: New file.
+       * Makefile.in (tree-ssa-address.o): Add.
+       * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
+       INDIRECT_REFs.  Handle TARGET_MEM_REFs.
+       * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
+       * tree-flow.h (struct mem_address): New.
+       (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
+       (create_mem_ref, addr_for_mem_ref, get_address_description,
+       maybe_fold_tmr, multiplier_allowed_in_address_p,
+       multiply_by_cost):  Declare.
+       * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
+       * tree-pretty-print.c (dump_generic_node): Ditto.
+       * tree-ssa-loop-im.c (for_each_index): Ditto.
+       * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
+       find_interesting_uses_address): Ditto.
+       (rewrite_address_base, build_addr_strip_iref): Removed.
+       (struct affine_tree_combination): Moved to tree-flow.h.
+       (get_ref_tag, copy_ref_info): New functions.
+       (rewrite_use_address): Produce TARGET_MEM_REFs.
+       (tree_ssa_iv_optimize): Do not call update_ssa
+       and rewrite_into_loop_closed_ssa.
+       (tree_to_aff_combination): Use build_fold_addr_expr instead of
+       build_addr_strip_iref.
+       (unshare_aff_combination): New function.
+       (fold_affine_sum): Removed.
+       (get_computation_at): Use get_computation_aff.  Unshare the result.
+       (get_computation_aff, multiplier_allowed_in_address_p): New function.
+       (multiply_by_cost): Exported.
+       (get_address_cost): Use multiplier_allowed_in_address_p.
+       * tree-ssa-operands.c (get_tmr_operands): New function.
+       (get_expr_operands): Handle TARGET_MEM_REFs.
+       * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
+       (build): Handle 7 arguments.
+       (build7_stat): New function.
+       * tree.def (TARGET_MEM_DEF): New.
+       * tree.h (REF_ORIGINAL): Removed.
+       (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
+       TMR_TAG, build7): New macros.
+       (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
+       * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
+       * doc/c-tree.texi: Document TARGET_MEM_REF.
+       * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
+
+2005-06-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/21946
+       * dwarf2out.c (add_loc_descr_op_piece): New function.
+       (multiple_reg_loc_descriptor, concat_loc_descriptor,
+       loc_descriptor): Use it.
+       * var-tracking.c: Include regs.h and expr.h.
+       (emit_note_insn_var_location): Skip over pieces where offset
+       is smaller than previous offset plus previous piece mode size.
+       Optimize adjacent hard registers or memory locations.
+       * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
+
+2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
+       for COND_EXPR.
+       * gimplify.c (gimplify_cond_expr): No need to fix up the
+       type of COND_EXPRs.
+
+2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
+       comments.
+
+2005-06-07  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/rs6000/host-darwin.c (segv_handler): Widen the possible
+       'stwux' instructions that are considered to be stack decrements.
+
+       * rtlanal.c (subreg_offset_representable_p): Handle objects
+       with holes.
+
+2005-06-06  Uros Bizjak  <uros@kss-loka.si>
+
+       * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
+       in call to pre_edge_lcm.
+
+2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
+       (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
+       (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
+       Likewise.
+       (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
+       dwarf register number for SHmedia.
+       (shmedia_fallback_frame_state): New.
+       (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
+
+       * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
+
+2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * c-lex.c (lex_string): Use XOBFINISH.
+       * collect2.c (extract_string, dump_file): Likewise.
+       * dbxout.c (dbxout_finish_complex_stabs): Likewise.
+       * gcc.c (init_spec, build_search_list, convert_filename, 
+       set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
+       * genpreds.c (write_predicate_subfunction): Likewise.
+       * genflags.c (main): Likewise.
+       * read-rtl.c (mode_attr_index, apply_macro_to_string, 
+       join_c_conditions, read_quoted_string, read_braced_string, 
+       read_rtx_1): Likewise.
+       * stringpool.c (ggc_alloc_string): Likewise.
+       * tlink.c (obstack_fgets, recompile_files): Likewise.
+
+2005-06-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * intl.h (G_): New macro.
+       * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
+       instead of msgid for argument name.
+       * tree-ssa.c (warn_uninit): Likewise.
+       * c-parser.c (c_parser_error): Likewise.
+       * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
+       * config/darwin-c.c (BAD): Likewise.
+       * config/c4x/c4x-c.c (BAD): Likewise.
+       * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
+       * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
+       * c-common.c (c_parse_error): Likewise.
+       * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
+       warning0, pedwarn, error, sorry, fatal_error, internal_error):
+       Likewise.
+       (fnotice): Use cmsgid instead of msgid for argument name.
+       * gcov.c (fnotice): Likewise.
+       * protoize.c (notice): Likewise.
+       * final.c (output_operand_lossage): Likewise.
+       * gcc.c (fatal, notice): Likewise.
+       (error): Use gmsgid instead of msgid for argument name.
+       * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
+       of msgid for argument name.
+       (error): Use gmsgid instead of msgid for argument name.
+       * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
+       instead of N_().
+       * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
+       * tree-inline.c (inline_forbidden_p_1): Likewise.
+       * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
+       conventions for marking translations.
+       * doc/install.texi: Mention gettext 0.14.5 or later requirement.
+
+       * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
+       build2.
+
+       * fold-const.c (operand_equal_p): Don't return 1, if element
+       chains for 2 VECTOR_CSTs are not the same length.
+
+       PR regression/21897
+       * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
+       not all VECTOR_CST elements are given.
+
+       * combine.c (try_combine): Use hard_regno_nregs array instead of
+       HARD_REGNO_NREGS macro.
+       * config/rs6000/rs6000.c (rs6000_split_multireg_move,
+       rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
+       * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
+
+2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-reassoc.o: New.
+       (OBJS-common): Add tree-ssa-reassoc.o
+       * timevar.def: Add TV_TREE_REASSOC
+       * tree-optimize.c (pass_reassoc): Add call.
+       * tree-pass.h (pass_reassoc): Add.
+       * tree-ssa-reassoc.c: New file.
+
+2005-06-06  Eric Christopher  <echristo@redhat.com>
+
+       target/21927
+       * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
+
+2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
+       HAVE_GAS_MAX_SKIP_P2ALIGN.
+       (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
+
+2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
+       getopt.h dependency.
+       (mips-tdump.o): Likewise.
+
+2005-06-06  Jan Hubicka  <jh@suse.cz>
+
+       * predict.c (tree_predict_edge): Don't drop useless predictions;
+       check that it is not called too late in the game.
+       (gate_estimate_probability): New gate.
+       (pass_profile): Gate.
+       * tree-mudflap.c (mf_build_check_statement_for): Do not drop
+       predictions; update CFG instead.
+       * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
+
+2005-06-06  Jie Zhang  <jie.zhang@analog.com>
+
+       * config.gcc (bfin*-uclinux*): New.
+       * config/bfin/uclinux.h: New file.
+
+2005-06-06  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/md.texi (Insn Splitting): Fix some wording.
+
+2005-06-05  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
+       (rs6000_emit_swdivdf): New function.
+       * config/rs6000/rs6000.md (fres): New pattern.
+       (divsf3): Add approximation through rs6000_emit_swdivsf.
+       (fred): New pattern.
+       (divdf3): Add approximation through rs6000_emit_swdivdf.
+       * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
+       (rs6000_emit_swdivdf): Declare.
+       * config/rs6000/rs6000.opt (mswdiv): New option.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
+
+2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/21846
+       * tree-cfg.c (replace_uses_by): Update information stored at loops.
+       * tree-flow.h (substitute_in_loop_info): Declare.
+       * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
+       Ensure that chrec_dont_know and chrec_known have a type.
+       * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
+
+2005-06-05  Steven Bosscher  <stevenb@suse.de>
+
+       * config/i386/i386.c (x86_use_loop): Remove.
+       * config/i386/i386.h (x86_use_loop): Remove extern decl.
+       (TARGET_USE_LOOP): Remove.
+       * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
+       Also remove related define_splits.
+
+2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * tree-flow.h (stmt_ann_d): Move aux to ...
+       (tree_ann_common_d): ... here.
+       * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
+       move_computations_stmt, schedule_sm): Update references to
+       aux.
+       * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
+       * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
+       call to set_stmt_info.
+       (vect_transform_loop): Likewise.
+       * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
+       Likewise.
+
+       * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
+       bool.
+       (vect_mark_relevant): Takes two additional arguments - live_p and
+       relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
+       (vect_stmt_relevant_p): Differentiate between a live stmt and a
+       relevant stmt. Return two values = live_p and relevant_p.
+       (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
+       vect_stmt_relevant_p with additional arguments. Phis are no longer
+       put into the worklist (analyzed seperately in analyze_scalar_cycles).
+       (vect_determine_vectorization_factor): Also check for LIVE_P, because a
+       stmt that is marked as irrelevant and live, cause it's only used out
+       side the loop, may need to be vectorized (e.g. reduction).
+       (vect_analyze_operations): Examine phis. Call
+       vectorizable_live_operation for for LIVE_P stmts. Check if
+       need_to_vectorize.
+       (vect_analyze_scalar_cycles): Update documentation. Don't fail
+       vectorization - just classify the scalar cycles created by the loop
+       phis. Call vect_is_simple_reduction.
+       (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
+       * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
+       call to set_stmt_info.
+       (vect_get_vec_def_for_operand): Code reorganized - the code that
+       classifies the type of use was factored out to vect_is_simple_use.
+       (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
+       additional arguments.
+       (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
+       and computes a loop_vec_def.
+       (vectorizable_operation, vectorizable_load, vectorizable_condition):
+       Likewise.
+       (vectorizable_live_operation): New.
+       (vect_transform_stmt): Handle LIVE_P stmts.
+       * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
+       STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
+       (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
+       (vect_is_simple_use): Determine the type of the def and return it
+       in a new function argument. Consider vect_reduction_def and
+       vect_induction_def, but for now these are not supported.
+       (vect_is_simple_reduction): New. Empty for now.
+       * tree-vectorizer.h (vect_def_type): New enum type.
+       (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
+       (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
+       (vect_is_simple_use): New arguments added to function declaration.
+       (vect_is_simple_reduction): New function declaration.
+       (vectorizable_live_operation): New function declaration.
+
+       * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
+       (vect_can_advance_ivs_p): Likewise.
+       * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
+
 2005-06-05  Eric Christopher  <echristo@redhat.com>
 
        * config/mips/mips.c (mips_rtx_costs): Remove unused variable.