+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.
+
+2005-06-05 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/21914
+ * config/mmix/mmix.md ("*movdicc_real_foldable")
+ ("*movdfcc_real_foldable", "*bCC_foldable")
+ ("*bCC_inverted_foldable"): Specify DImode for register being
+ compared.
+
+2005-06-04 Roger Sayle <roger@eyesopen.com>
+
+ * reg-stack.c (struct block_info_def): Correct grammar typo.
+ (compensate_edge): Clean-up. Perform as little work as possible
+ when src and dest stacks match. Avoid modifying block_info.
+ Reorder and simplify assertion checks. Avoid unnecessary copying
+ of regstack structure.
+ (convert_regs_1): Set the done flag here...
+ (convert_regs_2): ... instead of here.
+
+2005-06-04 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (no_global_regs_above): New.
+ (rs6000_emit_prologue): Use it; cosmetic formatting fixes.
+ (rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
+ (rs6000_conditional_register_usage): Don't put Darwin PIC
+ register in global_regs.
+ (rs6000_stack_info): Don't set lr_save_p just because Darwin
+ PIC reg used.
+ (rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
+ if not done by lr_save_p.
+ * config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
+ Use rotate instead of ashift.
+ (call_indirect_nonlocal_sysv): Prefer CTR to LR.
+ (call_value_indirect_nonlocal_sysv): Ditto.
+
+2005-06-04 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_reset_node): Break out from ...
+ (cgraph_finalize_function): ... here.
+ (cgraph_finalize_compilation_unit): Reset nodes where backend
+ removed the body.
+
+2005-06-04 Richard Henderson <rth@redhat.com>
+
+ PR target/21888
+ * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
+ until we've passed initial ldgp.
+
+2005-06-04 Daniel Berlin <dberlin@dberlin.org>
+
+ * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
+ * expr.c (expand_var): Ditto.
+ * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
+ * gimplify.c (gimplify_decl_expr): Ditto.
+ (gimplify_expr): Ditto.
+ * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
+ * tree.c (value_expr_for_decl): New.
+ (print_value_expr_statistics): New.
+ (init_ttree): Init value_expr_for_decl.
+ (decl_value_expr_lookup): New.
+ (decl_value_expr_insert): Ditto.
+ (copy_node_stat): Copy DECL_VALUE_EXPR status.
+ * tree.h (DECL_VALUE_EXPR): Use hashtable.
+ (SET_DECL_VALUE_EXPR): New.
+ (DECL_HAS_VALUE_EXPR_P): New.
+
+2005-06-04 Steven Bosscher <stevenb@suse.de>
+
+ * lcm.c: Move all mode-switching related functions from here...
+ * mode-switching.c: ...to this new file.
+ * doc/passes.texi: Update accordingly.
+
+ * basic-block.h (label_value_list): Remove extern decl.
+ * cfgrtl.c (label_value_list): Remove.
+ (can_delete_label_p): Don't look at it.
+ * cfgcleanup.c (cleanup_cfg): Don't free it.
+
+ * common.opt: Don't refer to non-existing flag_alias_check.
+
+2005-06-04 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
+
+2005-06-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * function.c (prologue, epilogue, sibcall_epilogue): Change
+ their types to VEC(int,heap)*.
+ (free_after_compilation): Free the three vectors above.
+ (init_function_for_compilation, record_insns, contains,
+ prologue_epilogue_contains, sibcall_epilogue_contains,
+ reposition_prologue_and_epilogue_notes): Use VEC instead of
+ VARRAY. (init_function_once): Remove.
+ * function.h: Remove the prototype for init_function_once.
+ * toplev.c (backend_init): Don't call init_function_once.
+
+2005-06-04 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (tree_predict_edge): Do not predict entry edge and
+ single succestor edge.
+
+2005-06-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/21873
+ * c-typeck.c (push_init_level): Don't pop levels without braces if
+ implicit == 1.
+
+2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * tree-data-ref.c (compute_self_dependence): New function.
+ (compute_all_dependences): Use it.
+
+2005-06-03 Geoffrey Keating <geoffk@apple.com>
+
+ * c-parser.c (c_parser_parms_declarator): Don't use chainon().
+ (c_parser_expr_list): Don't use chainon().
+
+ * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
+ when -isysroot passed.
+
+2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/21879
+ * c-decl.c (start_function): Restore label_context_stack_se and
+ label_context_stack_vm if returning with an error.
+
+2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * configure.ac: Check declaration for asprintf, needed by
+ libiberty.h.
+ * configure: Regenerate.
+ * config.in: Likewise.
+
+2005-06-03 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
+ allocate info array.
+ * tree-vrp.c (extract_range_from_unary_expr): Set resulting
+ range to varying in cast expressions that change
+ TYPE_PRECISION.
+
+2005-06-03 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.opt: Add RejectNegative to divide-breaks and
+ divide-traps.
+
+2005-06-03 Jan Hubicka <jh@suse.cz>
+
+ * basic-block.h (remove_predictions_associated_with_edge): Declare.
+ * cfg.c (remove_edge): Use it.
+ * predict.c (remove_predictions_associated_with_edge): New function.
+
+2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
+ Clear call_realy_used_regs[r2] when ABI_AIX.
+
+2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
+
+ PR middle-end/21858
+ * fold-const.c (fold_binary): Fix type mismatches in folding
+ of comparisons.
+
+2005-06-03 Kazu Hirata <kazu@codesourcery.com>
+
+ * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
+ typos.
+
+2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ * collect2.c (maybe_unlink): Use unlink_if_ordinary.
+
+2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (reload): Revert my previous patch.
+
+2005-06-03 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
+ assembler.
+
+2005-06-03 Kazu Hirata <kazu@codesourcery.com>
+
+ PR tree-optimization/21849
+ * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
+
+2005-06-02 Richard Henderson <rth@redhat.com>
+
+ * Makefile.in (tree-vect-generic.o): New.
+ (OBJS-common, GTFILES, s-gtype): Add it.
+ * tree-complex.c (build_replicated_const, vector_inner_type,
+ vector_last_type, vector_last_nunits, build_word_mode_vector_type,
+ elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
+ do_negate, expand_vector_piecewise, expand_vector_parallel,
+ expand_vector_addition, expand_vector_operation,
+ type_for_widest_vector_mode, expand_vector_operations_1,
+ gate_expand_vector_operations, expand_vector_operations,
+ pass_lower_vector_ssa): Move to tree-vect-generic.c.
+ (tree_lower_complex): Rename from tree_lower_operations.
+ (pass_lower_complex): Rename from pass_pre_expand.
+ * tree-vect-generic.c: New file.
+ * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
+ (pass_lower_vector): New.
+ * tree-optimize.c (init_tree_optimization_passes): Update to match.
+
+2005-06-02 Richard Henderson <rth@redhat.com>
+
+ * modulo-sched.c (doloop_register_get): Protect against
+ doloop_end not defined.
+
+2005-06-02 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/sh/sh.c (general_movsrc_operand,
+ general_movdst_operand, arith_reg_operand, arith_reg_dest,
+ logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
+ fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
+ xor_operand, cmp_operand, logical_operand, and_operand,
+ fpscr_operand, fpul_operand, symbol_ref_operand,
+ commutative_float_operator, noncommutative_float_operator,
+ unary_float_operator, binary_float_operator,
+ binary_logical_operator, equality_comparison_operator,
+ greater_comparison_operator, less_comparison_operator,
+ shift_operator, logical_operator, target_reg_operand,
+ target_operand, mextr_bit_offset, extend_reg_operand,
+ trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
+ general_extend_operand, ua_address_operand,
+ cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
+ sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
+ shift_count_reg_operand, shift_count_operand,
+ unaligned_load_operand): Move to ...
+ * config/sh/predicates.md: ... here.
+ * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
+ Remove.
+
+2005-06-02 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree.c (build_common_builtin_nodes): Fix the return type on
+ __builtin_memcmp.
+
+2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
+ (find_interesting_uses_address): Use build_fold_addr_expr instead.
+ (strip_offset_1): Likewise.
+ (tree_to_aff_combination): Likewise.
+
+2005-06-02 DJ Delorie <dj@redhat.com>
+
+ * convert.c (convert_to_pointer): Avoid recursion if no conversion
+ is needed.
+
+2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree-chrec.c (chrec_fold_plus_1): Ensure we build
+ binary operations with the correct types.
+ * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
+ for all computation.
+
+2005-06-02 Kazu Hirata <kazu@codesourcery.com>
+
+ * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
+ config/rs6000/rs6000.md: Fix comment typos. Follow splling
+ conventions.
+ * doc/install.texi: Fix a typo.
+
+2005-06-02 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
+ inline functions are not local.
+
+2005-06-02 Kazu Hirata <kazu@codesourcery.com>
+
+ * gimplify.c (gimplify_ctx): Change the type of case_labels to
+ VEC from VARRAY.
+ (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
+ of case_labels.
+
+2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
+ with correct type.
+
+2005-06-02 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
+ execute templates.
+ (s390_dump_pool): Likewise.
+ (s390_mainpool_start, s390_mainpool_finish): Likewise.
+ (s390_chunkify_start): Likewise.
+ (s390_dump_execute): Remove.
+ (s390_reorg): Handle out-of-pool execute templates.
+
+2005-06-02 Adrian Straetling <straetling@de.ibm.com>
+
+ * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
+ unconditional jump.
+
+2005-06-02 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_node): Maintain master clones.
+ (cgraph_remove_node): Likewise.
+ (availability_names): New static variable.
+ (dump_cgraph_node): Dump availability.
+ (dump_cgraph_varpool_node): Likewise.
+ (cgraph_is_master_clone, cgraph_master_clone,
+ cgraph_function_body_availability,
+ cgraph_variable_initializer_availability): New functions.
+ * cgraph.h (availability): New enum.
+ (struct cgraph_node): Add master_clone.
+ (cgraph_is_master_clone, cgraph_master_clone,
+ cgraph_function_body_availability,
+ cgraph_variable_initializer_availability): Declare.
+ * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
+ (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
+ * ipa-inline.c (cgraph_decide_inlining): Do not call
+ cgraph_remove_unreachable_nodes.
+
+ * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
+ previous patch.
+
+2005-06-02 Diego Novillo <dnovillo@redhat.com>
+
+ PR 21582
+ * tree-vrp.c (nonnull_arg_p): New.
+ (get_value_range): Call it.
+
+2005-06-02 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
+ add PROCESSOR_MAX.
+ (mips_rtx_cost_data): New datatype.
+ (MEMORY_MOVE_COST): Use data from structure.
+ (BRANCH_COST): Ditto.
+ (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
+ * config/mips/mips.md (cpu): Rework for processor_type changes.
+ * config/mips/mips.c (mips_cost): New variable.
+ (DEFAULT_COSTS): Define.
+ (mips_rtx_cost_data): New.
+ (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
+ for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
+ FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
+ (override_options): Set cost data.
+ (mips_register_move_cost): Formatting changes.
+ (bdesc_arrays): Use PROCESSOR_MAX.
+ (mips_init_builtins): Ditto.
+
+2005-06-02 Diego Novillo <dnovillo@redhat.com>
+
+ PR 21765
+ * doc/invoke.texi: Document -ftree-vrp.
+
+2005-06-02 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/21734
+ * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
+ phi_result when current_def is not available.
+ (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
+ available.
+
+2005-06-02 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
+ (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
+
+2005-06-02 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
+
+2005-06-02 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (dump_cgraph_node): Print new flags.
+ (dump_cgraph_varpool_node): Likewise.
+ (decide_variable_is_needed): Initialize externally_visible flag.
+ * cgraph.h (cgraph_local_info): Add externally_visible flag.
+ (cgraph_varpool_node): Likewise.
+ (cgraph_function_flags_ready): Declare.
+ * cgraph.c (cgraph_mark_local_functions): Rename to ...
+ (cgraph_function_and_variable_visibility) ... this one; handle
+ externally_visible flags.
+ (decide_is_function_needed): Set externally_visible flag.
+ (cgraph_finalize_function): Deal properly with early cleanups.
+ (cgraph_optimize): Update call of
+ cgraph_function_and_variable_visibility.
+
+2005-06-02 Steven Bosscher <stevenb@suse.de>
+ Mostafa Hagog <mustafa@il.ibm.com>
+
+ * cfgloop.h (doloop_condition_get): Make external.
+ * loop-doloop.c (doloop_condition_get): Generalize to make it
+ usable in modulo-sched.c.
+ * modulo-sched.c (doloop_register_get): Use
+ doloop_condition_get instead of duplicating it.
+
+2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (reload): Undo 2005-04-20 change. Make sure we detect
+ the correct set of init_insns that need deletion.
+ * local-alloc.c (update_equiv_regs): When substituting sole definition
+ into sole use of a reg, delete it from liveness information.
+
+2005-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
+
+2005-06-01 Diego Novillo <dnovillo@redhat.com>
+
+ PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
+ PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
+ * fold-const.c (invert_tree_comparison): Make extern.
+ * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
+ (struct value_range_def): Limewise.
+ (get_value_range): Remove.
+ (dump_value_range): Remove.
+ (dump_all_value_ranges): Remove.
+ (debug_all_value_ranges): Remove.
+ (vrp_evaluate_conditional): Declare.
+ * tree-ssa-propagate.c (struct prop_stats_d): Add field
+ num_pred_folded.
+ (substitute_and_fold): Add argument use_ranges_p.
+ Update all callers.
+ If use_ranges_p is true, call fold_predicate_in to fold
+ predicates using range information.
+ Ignore ASSERT_EXPRs.
+ Change debugging output to only show statements that have been
+ folded.
+ (replace_phi_args_in): Move debugging output code from
+ substitute and fold.
+ (fold_predicate_in): New local function.
+ * tree-ssa-propagate.h (enum value_range_type): Move from
+ tree-flow.h.
+ (struct value_range_d): Likewise.
+ Add field 'equiv'.
+ (value_range_t): Rename from value_range.
+ * tree-vrp.c (found_in_subgraph): Rename from found.
+ (get_opposite_operand): Remove.
+ (struct assert_locus_d): Declare.
+ (assert_locus_t): Declare.
+ (need_assert_for): Declare.
+ (asserts_for): Declare.
+ (blocks_visited): Declare.
+ (vr_value): Declare.
+ (set_value_range): Add argument 'equiv'.
+ Don't drop to VARYING ranges that cover all values in the
+ type.
+ Make deep copy of equivalence set 'equiv'.
+ (copy_value_range): New local function.
+ (set_value_range_to_undefined): New local function.
+ (compare_values): Return -2 if either value has overflowed.
+ (range_includes_zero_p): New local function.
+ (extract_range_from_assert): Flip the predicate code if the
+ name being asserted is on the RHS of the predicate.
+ Avoid creating unnecessary symbolic ranges if the comparison
+ includes another name with a known numeric range.
+ Update the equivalnce set of the new range when asserting
+ EQ_EXPR predicates.
+ (extract_range_from_ssa_name): Update the equivalence set of
+ the new range with VAR.
+ (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
+ If -fwrapv is used, set the resulting range to VARYING if the
+ operation overflows. Otherwise, use TYPE_MIN_VALUE and
+ TYPE_MAX_VALUE to represent -INF and +INF.
+ Fix handling of *_DIV_EXPR.
+ (extract_range_from_unary_expr): Handle MINUS_EXPR and
+ ABS_EXPR properly by switching the range around if necessary.
+ (extract_range_from_comparison): New local function.
+ (extract_range_from_expr): Call it.
+ (adjust_range_with_scev): Do not adjust the range if using
+ wrapping arithmetic (-fwrapv).
+ (dump_value_range): Also show equivalence set.
+ Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
+ (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
+ (infer_value_range): Change return value to bool.
+ Add arguments 'comp_code_p' and 'val_p'.
+ Do not attempt to infer ranges from statements that may throw.
+ Store the comparison code in comp_code_p.
+ Store the other operand to be used in the predicate in val_p.
+ (dump_asserts_for): New.
+ (debug_asserts_for): New.
+ (dump_all_asserts): New.
+ (debug_all_asserts): New.
+ (register_new_assert_for): New.
+ (register_edge_assert_for): New.
+ (find_conditional_asserts): New.
+ (find_assert_locations): New.
+ (process_assert_insertions_for): New.
+ (process_assert_insertions): New.
+ (insert_range_assertions): Initialize found_in_subgraph,
+ blocks_visited, need_assert_for and asserts_for.
+ Call find_assert_locations and process_assert_insertions.
+ (remove_range_assertions): Add more documentation.
+ (vrp_initialize): Change return type to void.
+ Do not try to guess if running VRP is worth it.
+ (compare_name_with_value): New.
+ (compare_names): New.
+ (vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
+ use_equiv_p is true, call compare_names and
+ compare_name_with_value to compare all the ranges for every
+ name in the equivalence set of the predicate operands.
+ Update all callers.
+ (vrp_meet): Try harder not to derive a VARYING range.
+ If two values meet, the resulting equivalence set is the
+ intersection of the two equivalence sets.
+ (vrp_visit_phi_node): Call copy_value_range to get the current
+ range information of the LHS.
+ (vrp_finalize): Create a value vector representing all the
+ names that ended up with exactly one value in their range.
+ Call substitute_and_fold.
+ (execute_vrp): Document equivalence sets in ranges.
+ * tree.h (SSA_NAME_VALUE_RANGE): Remove.
+ (struct tree_ssa_name): Remove field value_range.
+ (invert_tree_comparison): Declare.
+
+2005-06-01 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/21839
+
+ * gimplify.c (zero_sized_field_decl): New function.
+ (gimplify_init_ctor_eval): Use it.
+
+2005-06-01 Josh Conner <jconner@apple.com>
+
+ PR 21478
+ * gimplify.c (gimplify_init_constructor): Don't spill initializer
+ to read-only memory if it's sparse.
+
+2005-06-01 Ramana Radhakrishnan <ramana@codito.com>
+
+ * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
+ Add documentation for REG_SETJMP
+
+2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * stmt.c (expand_case): Use build_int_cst.
+ (node_has_low_bound): Likewise, and correct type mismatch.
+ (node_has_high_bound): Likewise.
+ * fold-const.c (fold_binary): Ensure we build trees
+ with the correct types - undo what STRIP_NOPS possibly did.
+
+2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree.h (fold_indirect_ref_1): Export from fold-const.c.
+ * fold-const.c (fold_indirect_ref_1): No longer static.
+ * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
+ folding, if possible.
+
+2005-06-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * common.opt (fjump-tables): New.
+ * doc/invoke.texi (-fno-jump-tables): Document.
+ * stmt.c (expand_end_case_type): Do not emit jump tables unless
+ flag_jump_tables.
+
+2005-06-01 Richard Earnshaw <richard.earnshaw@arm.com>
+
+ * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
+ (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
+ (sunlt, sunle): Enable patterns on VFP.
+
+ * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
+ f_stored, f_flag, f_cvt.
+ (generic_sched): No-longer used for the arm1020e and arm1022e cores.
+ Include arm1020e.md.
+ * vfp.md (fmstat): New cpu unit. Add an exclusion set between it and
+ the ds and fmac pipelines. Re-work all load and store patterns and
+ all conversion patterns to use new attributes. Adjust reservation
+ descriptions accordingly.
+ * arm1020e.md: New file.
+ * t-arm: Add dependency.
+
+2005-06-01 Jan Hubicka <jh@suse.cz>
+
+ * except.c (struct eh_region): Kill unused fields.
+ * basic-block.h (struct basic_block_def): Likewise.
+
+2005-06-01 J"orn Rennecke <joern.rennecke@st.com>
+
+ PR rtl-optimization/21767
+ * rtl.h (function_invariant_p): Re-add declaration.
+ * reload1.c (function_invariant_p): No longer static.
+ * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
+ might have become invalid.
+
2005-06-01 Jakub Jelinek <jakub@redhat.com>
PR c/21536
* Makefile.in: Update dependencies.
-
2005-06-01 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.