OSDN Git Service

2006-03-30 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 9ebe454..1c96801 100644 (file)
@@ -1,3 +1,655 @@
+2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR tree-optimization/26830
+
+       * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
+       (copy_prop_visit_stmt): Remove write-only variable ann.
+       (init_copy_prop): Check variable loop depth here.  Do not simulate
+       memory-tag and virtual operand PHIs except for store copy prop.
+
+2006-03-30  Richard Guenther  <rguenther@suse.de>
+
+       * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
+       variants with double arguments.
+
+2006-03-29  David Edelsohn  <edelsohn@gnu.org>
+
+       * genpreds.c (write_tm_constrs_h): Delete variable p.
+       * genconditions.c (write_header): Add tm-constrs.h to included
+       headers.
+       * genpeep.c (main): Add toplev.h to included headers.
+       * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
+       (build/genpeep.o): Add toplev.h dependency.
+       * config/rs6000/constraints.md: Add "W" constraint.
+
+2006-03-29  Roger Sayle  <roger@eyesopen.com>
+
+       * stor-layout.c (mode_for_size_tree): Remove restiction on type
+       sizes by correctly testing whether the size fits a host integer.
+       (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
+       to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
+       SImode range for the default sizetype and bitsizetype.
+
+2006-03-29  Roger Sayle  <roger@eyesopen.com>
+
+       * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
+       and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
+       quickly if the argument is already of the correct type.
+       Call fold_build1 instead of build1.  Tidy up blank lines.
+
+2006-03-29  David Edelsohn  <edelsohn@gnu.org>
+
+       * genemit.c (main): Add tm-constrs.h to included headers.
+       * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
+       * genpeep.c (main): Add tm-constrs.h to included headers.
+       * genpreds.c (write_satisfies_constraint_fns): Rename to ...
+       (write_tm_constrs_h): this and write complete file.
+       (write_tm_preds_h): Do not emit satisfies_constraint fns.
+       (write_insn_preds_c): Add tm-constrs.h to included headers.
+       (gen_constrs): New variable.
+       (parse_option): Parse "-c".
+       (main): Invoke write_tm_constrs_h.
+       * genrecog.c (write_header): Add tm-constrs.h to included headers.
+       * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
+       (object_out_file): Add tm-constrs.h dependency.
+       (insn-emit.o): Same.
+       (insn-output.o): Same.
+       (insn-peep.o): Same.
+       (insn-preds.o): Same.
+       (insn-recog.o): Same.
+       (tm-constsr.h): New target.
+       (s-constrs-h): New target.
+
+       * config/rs6000/constraints.md: New file.
+       * config/rs6000/rs6000.c: Include tm-constrs.h.
+       (num_insn_constant_wide): Convert to satisfies_constraint.
+       (rs6000_rtx_costs): Convert to satisfies_constraint.
+       * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
+       (CONST_OK_FOR_LETTER_P): Delete.
+       (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
+       (EXTRA_CONSTRAINT): Delete.
+       (EXTRA_MEMORY_CONSTRAINT): Delete.
+       (EXTRA_ADDRESS_CONSTRAINT): Delete.
+       * config/rs6000/predicates.md: Convert to satisfies_constraint.
+       * config/rs6000/rs6000.md: Include constraints.md.  Convert to
+       satisfies_constraint.
+
+       * config/i386/i386.c: Include tm-constrs.h.
+
+2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
+       * tree-data-ref.c (find_data_references_in_loop,
+       compute_data_dependences_for_loop): Use pointers to VEC.
+       (analyze_all_data_dependences): Adjust calls.
+       * tree-data-ref.h (find_data_references_in_loop,
+       compute_data_dependences_for_loop): Adjust declarations.
+       * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
+       compute_data_dependences_for_loop.
+
+2006-03-29  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
+       (movdf_vfp): Ditto.
+
+2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       PR tree-optimization/26859
+       * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
+       division by zero.
+       (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
+       for the step after fold_convert.
+
+2006-03-29  Paul Brook  <paul@codesourcery.com>
+
+       * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
+       (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
+
+2006-03-29  Paul Brook  <paul@codesourcery.com>
+
+       PR middle-end/23623
+       * targhooks.c (default_narrow_bitfield): New fuction.
+       * targhooks.h (default_narrow_bitfield): add prototype.
+       * target.h (gcc_target): Add narrow_volatile_bitfield.
+       * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
+       * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
+       * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
+       * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
+
+2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to 
+       tmake_file.
+       * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
+       (NR_C_MODES): Add TDmode, DDmode and SDmode.
+       (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
+       (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
+       (s390_function_arg_float): Allow SDmode and DDmode values to be
+       passed in floating point registers.
+       (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT 
+       check with SCALAR_FLOAT_MODE_P.
+       (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
+
+2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR tree-optimization/25985
+       * tree-ssa-loop-niter.c (number_of_iterations_le,
+       number_of_iterations_ne): Make comments more precise.
+       (number_of_iterations_cond): Add only_exit argument.  Use the
+       fact that signed variables do not overflow only when only_exit
+       is true.
+       (loop_only_exit_p): New.
+       (number_of_iterations_exit): Pass result of loop_only_exit_p to
+       number_of_iterations_cond.
+
+2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR tree-optimization/26643
+       * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
+       bit_field_refs.
+
+2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
+       (divsi3_i4_int): Likewise.
+
+2006-03-28  Roger Sayle   <roger@eyesopen.com>
+
+       * expr.c (emit_group_store): Only create a new pseudo reg if the
+       quantity it needs to hold isn't already a suitable pseudo.
+
+2006-03-28  Jeff Law  <law@redhat.com>
+
+       * timevar.def (TV_TREE_PHI_CPROP): New timevar.
+       * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
+
+2006-03-28  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
+       the equivalent ~X & Y, and the symmetry related transformations.
+       (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as 
+       ~X & Y, and symmetry related transforms.
+
+2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       Revert my 2006-03-27 patches.
+
+2006-03-28  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
+       ~(T1)X, when T1 and T2 are integer types of the same precision
+       and (T2)X isn't an extension.
+
+2006-03-28  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/26796
+       * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
+       need EH edge cleanups rather than purging them immediately.
+       (eliminate_degenerate_phis): Handle queued EH cleanups.
+
+2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
+       from parent_var.
+
+2006-03-27  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/22524
+       * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
+       cast BIT_NOT_EXPR operand to the correct type.
+
+2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * tree-loop-linear.c: Don't include varray.h.
+       (gather_interchange_stats, try_interchange_loops,
+       linear_transform_loops): Use VEC instead of VARRAY.
+       * lambda-mat.c: Don't include varray.h.
+       * tree-chrec.c: Same.
+       * lambda-trans.c: Same.
+       * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
+       VEC instead of VARRAY.
+       * tree-vectorizer.h: Idem.
+       * tree-data-ref.c (dump_data_references,
+       dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
+       initialize_data_dependence_relation, finalize_ddr_dependent,
+       compute_all_dependences, find_data_references_in_loop,
+       compute_data_dependences_for_loop, analyze_all_data_dependences,
+       free_dependence_relation, free_dependence_relations,
+       free_data_refs): Idem.
+       * tree-data-ref.h (data_reference_p, subscript_p): New.
+       (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
+       VEC instead of VARRAY.
+       (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
+       (find_data_references_in_loop, compute_data_dependences_for_loop,
+       dump_ddrs, dump_dist_dir_vectors, dump_data_references,
+       dump_data_dependence_relations, free_dependence_relations,
+       free_data_refs): Adjust declaration.
+       (lambda_transform_legal_p): Move declaration here...
+       * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
+       vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
+       vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
+       vect_analyze_data_refs): Use VEC instead of VARRAY.
+       * lambda.h (lambda_transform_legal_p): ...from here.
+       * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
+       * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
+       * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
+       tree-chrec.o): Don't depend on VARRAY_H.
+
+2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       * rtl.def (Copyright): Update date.
+       (DEPS_LIST): Change type of the second operand to 'int'.
+       * target.h (Copyright): Update date.
+       (struct gcc_target.speculate_insn): Change type of the second parameter
+       to 'int'.
+       * lists.c (Copyright): Update date.
+       (alloc_DEPS_LIST): Change signature.  Update reference to the second
+       operand of the DEPS_LIST.
+       (copy_DEPS_LIST_list): Update reference to the second operand of the
+       DEPS_LIST.
+       * rtl.h (Copyright): Update date.
+       (alloc_DEPS_LIST): Update signature.
+       * sched-int.h (Copyright): Update date.
+       (ds_t): Change typedef to 'int'.
+       (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
+
+2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       * haifa-sched.c (Copyright): Update date.
+       (try_ready): Change condition to restore non-speculative pattern
+       of the instruction.
+       (process_insn_depend_be_in_spec): Code to keep probability of the
+       speculative dependence non-decreasing.
+
+2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * regrename.c (replace_oldest_value_addr): Initialize a variable to
+       shut up the compiler.
+
+2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
+
+       * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
+       to use lib prefix for target.
+       ($(T)libic_invalidate_array_4-200.a): Likewise.
+       ($(T)libic_invalidate_array_4a.a): Likewise.
+
+2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
+           J"orn Rennecke <joern.rennecke@st.com>
+
+       * superh.opt: New file.
+       * sh.c (boardtype, osruntime): Remove.
+       * superh.h (SUBTARGET_OPTIONS): Remove.
+       * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
+
+       * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
+       arguments with ^ and/or [].
+
+       * config.gcc (sh-*-*): Add quoting to account for quirk of
+       Solaris /bin/sh.
+       Replace == with = in enable_incomplete_targets test.
+
+       * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
+       with MASK_LITTLE_ENDIAN.
+
+       * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
+       * config/sh/sh.opt: Added to some comments.
+       * config/sh/superh.h: Removed some chaff.
+
+       * config/sh/sh.opt: Add m4-[1234]00* options.
+       * config/sh/sh.c (sh_handle_option): Likewise.
+       * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
+       (ic_invalidate_array_4-100.o): New rule.
+       ($(T)libic_invalidate_array_4-100.a): Likewise.
+       (ic_invalidate_array_4-200.o): Likewise.
+       ($(T)libic_invalidate_array_4-200.a): Likewise.
+       (ic_invalidate_array_4a.o): Likewise.
+       ($(T)libic_invalidate_array_4a.a): Likewise.
+       * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
+       * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
+       m4-200*, and m4a*.
+       * config/sh/crt1.asm: Merged in profiling code.
+       * config/sh/superh.h (STARTFILE_SPEC): Override.
+       * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
+       Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
+       * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
+
+       * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
+       * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
+       MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
+
+       * sh.opt (mpretend-cmove): New option.
+       * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
+       * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
+       (movsicc): Add TARGET_PRETEND_CMOVE code.
+
+2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_hard_regno_mode_ok, 
+       s390_class_max_nregs): New function prototypes.
+       * config/s390/s390.c (REGNO_PAIR_OK): New macro.
+       (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
+       * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
+       CLASS_MAX_NREGS): Macro bodies replaced by function calls.
+
+2006-03-26  Geoffrey Keating  <geoffk@apple.com>
+
+       * dwarf2out.c (add_location_or_const_value_attribute): Call
+       tree_add_const_value_attribute if nothing else works.
+       (reference_to_unused): New.
+       (rtl_for_decl_init): Use reference_to_unused to decide whether
+       to output an initializer.
+
+2006-03-27  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/26459
+       * config/rs6000/rs6000.md (DF reg move peephole): Prevent
+       peephole removing spe frob_di_df_2.
+
+2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
+       (subscript_dependence_tester_1): Declared.
+       (print_dir_vectors, print_dist_vectors): New.
+       (debug_data_dependence_relation): New.
+       (dump_data_dependence_relation): Print more details.
+       (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
+       (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
+       (save_dist_v, save_dir_v, add_outer_distances,
+       build_classic_dist_vector_1): New.
+       (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
+       Don't test for lambda_vector_lexico_pos.
+       (same_access_functions, add_multivariate_self_dist,
+       add_other_self_distances, dir_from_dist): New.
+       (build_classic_dir_vector): Replace implementation almost identical to 
+       build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
+       dir_from_dist.
+       (subscript_dependence_tester_1): New.
+       (subscript_dependence_tester): Handle the lexicographically negative
+       distance vectors by recomputing the dependence relation.
+       (compute_affine_dependence): Remove parameter loop_nest_depth.
+       (compute_self_dependence): Don't call compute_subscript_distance.
+       (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
+       Add a parameter for the loop_nest.
+       (find_loop_nest_1, find_loop_nest): New.
+       (compute_data_dependences_for_loop): Compute the loop nest, and give
+       up if the nest is not well formed.
+       * tree-data-ref.h (loop_p): New.
+       (struct data_dependence_relation): Replace size_vect field with 
+       loop_nest, a vec of loops.
+       (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
+       (DDR_LOOP_NEST): New.
+       (print_dir_vectors, print_dist_vectors,
+       debug_data_dependence_relation): Declared.
+       (index_in_loop_nest): New.
+       * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
+       DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
+       distance.
+
+2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * simplify-rtx.c (simplify_relational_operation): Call
+       simplify_relational_operation_1 even if mode is VOIDmode.
+
+2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
+
+       PR tree-optimization/26804
+       * tree.h (DECL_CALL_CLOBBERED): New macro.
+       (tree_decl_common): Add call_clobbered_flag.
+       * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
+       (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
+       (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
+       (mark_non_addressable): Ditto.
+       * tree-ssa.c (verify_call_clobbered): New function.
+       (verify_alias_info): Use it.
+       * tree-pass.h (pass_reset_cc_flags): New prototype.
+       * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
+       (reset_cc_flags): New function.
+       * passes.c (init_optimization_passes): Call reset_cc_flags after
+       initializing referenced_vars.
+
+2006-03-25  Uros Bizjak  <uros@kss-loka.si>
+           Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/26717
+       * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
+       to 1.0 for non-real operands. Implement A / A optimization for
+       complex operands.
+
+2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (size_cost): Correct the comment for
+       cost of storing fp registers.
+       (i386_cost): Likewise.
+       (i486_cost): Likewise.
+       (pentium_cost): Likewise.
+       (pentiumpro_cost): Likewise.
+       (k6_cost): Likewise.
+       (athlon_cost): Likewise.
+       (k8_cost): Likewise.
+       (pentium4_cost): Likewise.
+       (nocona_cost): Likewise.
+       (generic64_cost): Likewise.
+       (generic32_cost): Likewise.
+
+2006-03-24  Denis Chertykov  <denisc@overta.ru>
+
+       * config/avr/avr-protos.h (extra_constraint): Delete.
+       (extra_constraint_Q): New declaration.
+       * config/avr/constraints.md: New file.
+       * config/avr/avr.md: Include it.
+       (REG_X, REG_Y, REG_Z, REG_W): New constants.
+       (TMP_REGNO, ZERO_REGNO): Likewise.
+       (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
+       * config/avr/avr.c (avr_reg_class_from_letter): Delete.
+       (extra_constraint): Delete.
+       (extra_constraint_Q): Test for memory constraint 'Q'.
+       * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
+       (REG_CLASS_FROM_LETTER): Delete.
+       (CONST_OK_FOR_LETTER_P): Delete.
+       (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
+       (EXTRA_CONSTRAINT): Delete.
+       (TMP_REGNO): Delete.
+       (ZERO_REGNO): Delete.
+
+2006-03-24  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
+       directly.  Call mark_new_vars_to_rename slightly earlier.
+
+2006-03-24  Geoffrey Keating  <geoffk@apple.com>
+
+       * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
+       (is_cxx): Likewise.
+       (gen_compile_unit_die): Use new language types for Objective-C and
+       Objective-C++.
+       (dwarf2out_decl): Use is_cxx rather than testing explicitly against
+       DW_LANG_C_plus_plus.
+
+       PR 26793
+       * config/t-darwin (crt3.o): Work around bug 26840.
+       * config/darwin-crt3.c: Rewrite.
+       * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
+
+2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
+
+       * doc/invoke.texi: Document -femit-class-debug-always
+       * common.opt: Add -femit-class-debug-always.
+
+2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.c (s390_decompose_address): Allow SImode for
+       index and base register.
+       (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
+       print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
+       with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
+       REGNO_OK_FOR_INDEX_P.
+       * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
+       ADDR_REGNO_P.
+       (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
+       REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
+       REG_OK_FOR_BASE_P): Definitions removed.
+
+2006-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/26611
+       * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
+       non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
+       set yet or weren't marked as local yet.
+
+2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * regrename.c (scan_rtx_address): Initialize a variable to shut up
+       the compiler.
+
+2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
+       (rs6000_legitimate_small_data_p): Delete.
+       * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
+       (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
+       and make static.  Add forward declaration.  Update uses.
+       (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
+       of offsettable_memref_p.
+       * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
+       Use rs6000_offsettable_memref_p instead of a less accurate predicate.
+
+2006-03-24  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
+       around bug in immediate-use iterator.
+
+2006-03-24  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/26607
+       * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
+       or __LITTLE_ENDIAN__.
+
+2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
+
+       * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
+       * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
+       * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
+       * config/sh/sh.opt (mdiv=): Amend description.
+       * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
+       (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
+       (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
+       SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
+       (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
+       Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
+       * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
+       (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
+       TARGET_DIVIDE_CALL_FP.
+
+2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+       * haifa-sched.c (choose_ready): Fix type of the local variable.
+       Move local variables.  Add comment.
+       (check_reg_live): Change signature.  Make callable from debugger.
+       * sched-int.h (check_reg_live): Update signature.
+       * sched-ebb.c (check_reg_live): Update parameters.
+       * sched-rgn.c (check_reg_live): Ditto.
+       (region_head_or_leaf_p): Check pointer before dereferencing.
+       * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
+       before reload on optimization levels below 1.
+
+2006-03-23  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
+       tls symbols.
+
+       PR target/26347
+       * config/alpha/predicates.md (local_symbolic_operand): Reject
+       weak symbols.
+
+2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/26795
+       * tree-ssa-pre.c (create_value_expr_from): Don't reject
+       expressions which have overflowed constants.
+
+2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
+
+2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * cfgloopmanip.c (create_loop_notes): Removed.
+       * final.c (final_scan_insn): Do not handle loop notes.
+       * jump.c (squeeze_notes): Ditto.
+       * cfglayout.c (skip_insns_after_block,
+       duplicate_insn_chain): Ditto.
+       * cfgcleanup.c (rest_of_handle_jump2): Do not call
+       create_loop_notes.
+       * cfgloop.h (create_loop_notes): Declaration removed.
+
+2006-03-23  Richard Sandiford  <richard@codesourcery.com>
+
+       * varasm.c (output_constant_pool): Restore fnname and fndecl
+       arguments.
+       (assemble_start_function): Adjust call accordingly.
+       (assemble_end_function): Likewise.
+
+2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR mudflap/26790
+       * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
+
+       PR mudflap/26789
+       * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
+
+2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR driver/22600
+       * system.h (ICE_EXIT_CODE): New macro.
+       * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
+       (diagnostic_action_after_output): Likewise.
+       * gcc.c (fatal_ice): New function.
+       (execute): Use it instead of fatal.
+       (fancy_abort): Likewise.
+       * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
+
+2006-03-22  Jeff Law  <law@redhat.com>
+
+       * loop-unroll.c (analyze_iv_to_split_insn): Handle
+       iv_analyze_result returning false.
+
+2006-03-22  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
+
+2006-03-22  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/26084
+       * except.c (duplicate_eh_regions_0): New.
+       (duplicate_eh_region_1): Duplicate the children of the node as
+       well as the node itself.  Link them up properly.
+       (duplicate_eh_region_2): Merge into ...
+       (duplicate_eh_regions): ... here.  Take copy_region argument, and
+       copy only a sub-tree if asked.  Simplify copying and fixup.
+       (eh_region_outer_p): New.
+       * except.h (duplicate_eh_regions): Update decl.
+       (eh_region_outer_p): Declare.
+       * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
+       (lower_omp_master): Likewise.
+       (lower_omp_ordered): Likewise.
+       * tree-cfg.c (struct move_stmt_d): Add new_label_map.
+       (move_stmt_r): Use it to remap labels.  Handle recursion vs
+       remap_decls_p properly.
+       (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
+       (find_outermost_region_in_block): New.
+       (new_label_mapper): New.
+       (move_sese_region_to_fn): Copy eh information to the new function
+       properly.
+       * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
+       argument.
+       * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
+       number.
+
+2006-03-22  Richard Sandiford  <richard@codesourcery.com>
+
+       * doc/md.texi (-mshared): Mention that -mshared code can be linked
+       into shared libraries.
+
 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
 
        * doc/md.texi: Refer to i386/constraints.md instead of
        * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
        alias semantics is specified by flag_argument_noalias > 2.
 
+2006-03-20  Jeff Law  <law@redhat.com>
 
        * tree-pass.h (pass_phi_only_copy_prop): Delete.
        (pass_phi_only_cprop): Declare.
 
 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
 
-        * config/ia64/ia64.c (stops_p): Added explicit initialization.
-        (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
-        ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
-        ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
+       * config/ia64/ia64.c (stops_p): Added explicit initialization.
+       (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
+       ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
+       ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
        ia64_sched_finish_global): New static functions to implement
        hooks from gcc_target.sched.
        (spec_check_no, max_uid, pending_data_specs): New static variables.
-        (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
+       (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
        ia64_spec_check_src_p): New static functions.
-        (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
-        (TARGET_SCHED_ADJUST_COST): Removed.
-        (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
+       (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
+       (TARGET_SCHED_ADJUST_COST): Removed.
+       (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
        TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
        TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
        TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
-        TARGET_SCHED_SET_SCHED_FLAGS): New macros.
-        (update_set_flags, group_barrier_needed, set_src_needs_barrier):
+       TARGET_SCHED_SET_SCHED_FLAGS): New macros.
+       (update_set_flags, group_barrier_needed, set_src_needs_barrier):
        Fixed to handle speculation checks.
-        (rtx_needs_barrier): Fixed to handle speculative loads and
-        their checks.
-        (ia64_variable_issue): Added code to count speculative loads and their
-        checks.
-        (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
-        speculative loads.
-        (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
-        New enumerations.
-        (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
-        New constants.
-        (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
+       (rtx_needs_barrier): Fixed to handle speculative loads and
+       their checks.
+       (ia64_variable_issue): Added code to count speculative loads and their
+       checks.
+       (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
+       speculative loads.
+       (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
+       New enumerations.
+       (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
+       New constants.
+       (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
        (ia64_reorg): Reset stops_p to NULL after it is freed.
-        * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
+       * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
        UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
-        (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
-        chk_a.
-        (data_speculative, control_speculative, check_load): New attributes.
-        (mov<mode>_advanced, mov<mode>_speculative,
-        mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
-        zero_extend<mode>di2_speculative,
-        zero_extend<mode>di2_speculative_advanced): New patterns for
-        data and control speculative loads.
-        (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
-        check loads.
-        (advanced_load_check_clr_<mode>, speculation_check_<mode>):
-        New pattern for data and control speculation checks.
+       (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
+       chk_a.
+       (data_speculative, control_speculative, check_load): New attributes.
+       (mov<mode>_advanced, mov<mode>_speculative,
+       mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
+       zero_extend<mode>di2_speculative,
+       zero_extend<mode>di2_speculative_advanced): New patterns for
+       data and control speculative loads.
+       (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
+       check loads.
+       (advanced_load_check_clr_<mode>, speculation_check_<mode>):
+       New pattern for data and control speculation checks.
        (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
        ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
        reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
        Auxiliary definitions for the patterns.
-        * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
-        1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
-        constraints.
+       * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
+       1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
+       constraints.
        (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
-        for speculation.
-        (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
-        * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
+       for speculation.
+       (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
+       * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
        2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
        New resource constraints.
        (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
-        for speculation.
-        (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
-        * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
-        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
-        msched-in-control-spec, msched-ldc, msched-control-ldc,
-        msched-spec-verbose, msched-prefer-non-data-spec-insns,
-        msched-prefer-non-control-spec-insns,
+       for speculation.
+       (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
+       * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
+       msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
+       msched-in-control-spec, msched-ldc, msched-control-ldc,
+       msched-spec-verbose, msched-prefer-non-data-spec-insns,
+       msched-prefer-non-control-spec-insns,
        msched-count-spec-in-critical-path): New flags to tune speculative
        scheduling.
        * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
-        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
-        msched-in-control-spec, msched-ldc, msched-control-ldc,
-        msched-spec-verbose, msched-prefer-non-data-spec-insns,
-        msched-prefer-non-control-spec-insns,
+       msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
+       msched-in-control-spec, msched-ldc, msched-control-ldc,
+       msched-spec-verbose, msched-prefer-non-data-spec-insns,
+       msched-prefer-non-control-spec-insns,
        msched-count-spec-in-critical-path): Document new flags.
 
 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
 
-        * target.h (struct spec_info_def): New opaque declaration.
-        (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
-        speculate_insn, needs_block_p, gen_check,
-        first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
-        * target-def.h (TARGET_SCHED_ADJUST_COST_2,
-        TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
-        TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
-        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
-        TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
-        gcc_target.sched.
-        (TARGET_SCHED): Use new macros.
-        * rtl.h (copy_DEPS_LIST_list): New prototype.
-        * sched-int.h (struct sched_info): Change signature of new_ready field,
+       * target.h (struct spec_info_def): New opaque declaration.
+       (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
+       speculate_insn, needs_block_p, gen_check,
+       first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
+       * target-def.h (TARGET_SCHED_ADJUST_COST_2,
+       TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
+       TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
+       TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
+       TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
+       gcc_target.sched.
+       (TARGET_SCHED): Use new macros.
+       * rtl.h (copy_DEPS_LIST_list): New prototype.
+       * sched-int.h (struct sched_info): Change signature of new_ready field,
        adjust all initializations. New fields: add_remove_insn,
-        begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
+       begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
        region_head_or_leaf_p.
-        (struct spec_info_def): New structure declaration.
-        (spec_info_t): New typedef.
-        (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
-        recovery_block, orig_pat.
-        (glat_start, glat_end): New variables declaraions.
-        (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
+       (struct spec_info_def): New structure declaration.
+       (spec_info_t): New typedef.
+       (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
+       recovery_block, orig_pat.
+       (glat_start, glat_end): New variables declaraions.
+       (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
        New access macros.
-        (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
-        DETACH_LIFE_INFO, USE_GLAT.
-        (enum SPEC_SCHED_FLAGS): New enumeration.
-        (NOTE_NOTE_BB_P): New macro.
-        (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
-        attach_life_info, debug_spec_status, check_reg_live): New functions.
-        (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
-        all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
-        sched-ebb.c
+       (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
+       DETACH_LIFE_INFO, USE_GLAT.
+       (enum SPEC_SCHED_FLAGS): New enumeration.
+       (NOTE_NOTE_BB_P): New macro.
+       (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
+       attach_life_info, debug_spec_status, check_reg_live): New functions.
+       (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
+       all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
+       sched-ebb.c
        (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
-        * ddg.c (get_block_head_tail): Adjust all uses.
-        * modulo-sched.c (get_block_head_tail): Adjust all uses.
+       * ddg.c (get_block_head_tail): Adjust all uses.
+       * modulo-sched.c (get_block_head_tail): Adjust all uses.
        (sms_sched_info): Initialize new fields.
        (contributes_to_priority): Removed.
-        * haifa-sched.c (params.h): New include.
+       * haifa-sched.c (params.h): New include.
        (get_block_head_tail): Adjust all uses.
-        (ISSUE_POINTS): New macro.
-        (glat_start, glat_end): New global variables.
-        (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
+       (ISSUE_POINTS): New macro.
+       (glat_start, glat_end): New global variables.
+       (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
        nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
        old_last_basic_block, before_recovery, current_sched_info_var,
        rgn_n_insns, luid): New static variables.
-        (insn_cost1): New function.  Move logic from insn_cost to here.
-        (find_insn_reg_weight1): New function.  Move logic from
-        find_insn_reg_weight to here.
-        (reemit_notes, move_insn, max_issue): Change signature.
-        (move_insn1): Removed.
-        (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
-        extend_bb): New static functions to support extension of scheduler's
-        data structures.
-        (generate_recovery_code, process_insn_depend_be_in_spec,
-        begin_speculative_block, add_to_speculative_block,
-        init_before_recovery, create_recovery_block, create_check_block_twin,
-        fix_recovery_deps): New static functions to support
-        generation of recovery code.
-        (fix_jump_move, find_fallthru_edge, dump_new_block_header,
-        restore_bb_notes, move_block_after_check, move_succs): New static
-        functions to support ebb scheduling.
-        (init_glat, init_glat1, attach_life_info1, free_glat): New static
-        functions to support handling of register live information.
-        (associate_line_notes_with_blocks, change_pattern, speculate_insn,
+       (insn_cost1): New function.  Move logic from insn_cost to here.
+       (find_insn_reg_weight1): New function.  Move logic from
+       find_insn_reg_weight to here.
+       (reemit_notes, move_insn, max_issue): Change signature.
+       (move_insn1): Removed.
+       (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
+       extend_bb): New static functions to support extension of scheduler's
+       data structures.
+       (generate_recovery_code, process_insn_depend_be_in_spec,
+       begin_speculative_block, add_to_speculative_block,
+       init_before_recovery, create_recovery_block, create_check_block_twin,
+       fix_recovery_deps): New static functions to support
+       generation of recovery code.
+       (fix_jump_move, find_fallthru_edge, dump_new_block_header,
+       restore_bb_notes, move_block_after_check, move_succs): New static
+       functions to support ebb scheduling.
+       (init_glat, init_glat1, attach_life_info1, free_glat): New static
+       functions to support handling of register live information.
+       (associate_line_notes_with_blocks, change_pattern, speculate_insn,
        sched_remove_insn, clear_priorities, calc_priorities, bb_note,
        add_jump_dependencies): New static functions.
-        (check_cfg, has_edge_p, check_sched_flags): New static functions for
+       (check_cfg, has_edge_p, check_sched_flags): New static functions for
        consistancy checking.
        (debug_spec_status): New function to call from debugger.
        (priority): Added code to handle speculation checks.
        (schedule_insn): Added code to handle speculation checks.
        (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
        Fixed to handle ebbs.
-        (move_insn): Added code to handle ebb scheduling.
+       (move_insn): Added code to handle ebb scheduling.
        (max_issue): Added code to use ISSUE_POINTS of instructions.
-        (choose_ready): Added code to choose between speculative and
-        non-speculative instructions.
-        (schedule_block): Added code to handle ebb scheduling and scheduling of
-        speculative instructions.
-        (sched_init): Initialize new variables.
-        (sched_finish): Free new variables.  Print statistics.
-        (try_ready): Added code to handle speculative instructions.
-        * lists.c (copy_DEPS_LIST_list): New function.
-        * sched-deps.c (extend_dependency_caches): New function.  Move logic
-        from create_dependency_caches to here.
+       (choose_ready): Added code to choose between speculative and
+       non-speculative instructions.
+       (schedule_block): Added code to handle ebb scheduling and scheduling of
+       speculative instructions.
+       (sched_init): Initialize new variables.
+       (sched_finish): Free new variables.  Print statistics.
+       (try_ready): Added code to handle speculative instructions.
+       * lists.c (copy_DEPS_LIST_list): New function.
+       * sched-deps.c (extend_dependency_caches): New function.  Move logic
+       from create_dependency_caches to here.
        (get_dep_weak, ds_merge): Make global.
-        * genattr.c (main): Code to output prototype for
-        dfa_clear_single_insn_cache.
-        * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
-        (output_dfa_clean_insn_cache_func): Code to output
-        dfa_clear_single_insn_cache function.
-        * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
+       * genattr.c (main): Code to output prototype for
+       dfa_clear_single_insn_cache.
+       * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
+       (output_dfa_clean_insn_cache_func): Code to output
+       dfa_clear_single_insn_cache function.
+       * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
        n_insns.
-        (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
-        Removed.
-        (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
-        New static variables.
-        (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
+       (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
+       Removed.
+       (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
+       New static variables.
+       (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
        fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
        struct sched_info.
-        (ebb_sched_info): Initialize new fields.
+       (ebb_sched_info): Initialize new fields.
        (get_block_head_tail): Adjust all uses.
        (compute_jump_reg_dependencies): Fixed to use glat_start.
        (schedule_ebb): Code to remove unreachable last block.
-        (schedule_ebbs): Added code to update register live information.
-        * sched-rgn.c (region_sched_info): Initialize new fields.
+       (schedule_ebbs): Added code to update register live information.
+       * sched-rgn.c (region_sched_info): Initialize new fields.
        (get_block_head_tail): Adjust all uses.
        (last_was_jump): Removed.  Adjust users.
-        (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
+       (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
        add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
        Implement new hooks.
-        (check_dead_notes1): New static function.
-        (struct region): New fields: dont_calc_deps, has_real_ebb.
-        (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
-        (BB_TO_BLOCK): Fixed to handle EBBs.
-        (EBB_FIRST_BB, EBB_LAST_BB): New macros.
-        (ebb_head): New static variable.
-        (debug_regions, contributes_to_priority): Fixed to handle EBBs.
-        (find_single_block_regions, find_rgns, find_more_rgns): Initialize
+       (check_dead_notes1): New static function.
+       (struct region): New fields: dont_calc_deps, has_real_ebb.
+       (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
+       (BB_TO_BLOCK): Fixed to handle EBBs.
+       (EBB_FIRST_BB, EBB_LAST_BB): New macros.
+       (ebb_head): New static variable.
+       (debug_regions, contributes_to_priority): Fixed to handle EBBs.
+       (find_single_block_regions, find_rgns, find_more_rgns): Initialize
        new fields.
        (compute_dom_prob_ps): New assertion.
-        (check_live_1, update_live_1): Fixed to work with glat_start instead of
-        global_live_at_start.
+       (check_live_1, update_live_1): Fixed to work with glat_start instead of
+       global_live_at_start.
        (init_ready_list): New assertions.
        (can_schedule_ready_p): Split update code to begin_schedule_ready.
        (new_ready): Add support for BEGIN_CONTROL speculation.
-        (schedule_insns): Fixed code that updates register live information
-        to handle EBBs.
-        (schedule_region): Fixed to handle EBBs.
+       (schedule_insns): Fixed code that updates register live information
+       to handle EBBs.
+       (schedule_region): Fixed to handle EBBs.
        (init_regions): Use extend_regions and check_dead_notes1.
-        * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
-        PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
+       * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
+       PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
        * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
        TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
        TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_SET_SCHED_FLAGS): Document.
-        * doc/invoke.texi (max-sched-insn-conflict-delay,
+       * doc/invoke.texi (max-sched-insn-conflict-delay,
        sched-spec-prob-cutoff): Document.
 
 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
 
-        * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
+       * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
        inter_tick, queue_index.
        (struct sched_info): Change signature of init_ready_list field.
        Adjust all initializations.
        (gather_region_statistics, print_region_statistics): New static
        functions.
        * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
-        * doc/invoke.texi (max-sched-extend-regions-iters): Document.
+       * doc/invoke.texi (max-sched-extend-regions-iters): Document.
 
 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
-            Andrey Belevantsev <abel@ispras.ru>
+           Andrey Belevantsev <abel@ispras.ru>
 
        * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
-        * lists.c (unused_deps_list): New variable.
+       * lists.c (unused_deps_list): New variable.
        (free_list): Add assertions to verify the proper distinguishing 
-        between INSN_LISTs and DEPS_LISTs.
-        (find_list_elem, remove_list_elem, remove_list_node): New static
+       between INSN_LISTs and DEPS_LISTs.
+       (find_list_elem, remove_list_elem, remove_list_node): New static
        functions.
-        (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
-        remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
-        remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
-        (alloc_INSN_LIST): Assert that the list we're working on is indeed
+       (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
+       remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
+       remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
+       (alloc_INSN_LIST): Assert that the list we're working on is indeed
        an INSN_LIST.
-        (free_INSN_LIST_node): Likewise.
+       (free_INSN_LIST_node): Likewise.
        * modulo-sched.c (current_sched_info): Initialize flags field.
        * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
        * rtl.def (DEPS_LIST): Define.
-        * rtl.h: Declare new functions from lists.c.
-        * sched-deps.c (spec_dependency_cache): New static variable.
-        (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
-        (add_dependence): Change return type to void.  Move the logic to ...
-        (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
-        (delete_all_dependences): Add comment about forward_dependency_cache.
+       * rtl.h: Declare new functions from lists.c.
+       * sched-deps.c (spec_dependency_cache): New static variable.
+       (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
+       (add_dependence): Change return type to void.  Move the logic to ...
+       (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
+       (delete_all_dependences): Add comment about forward_dependency_cache.
        Handle spec_dependency_cache.  Handle DEPS_LISTs.
-        (fixup_sched_groups): Clarify the change of priority of output
-        and anti dependencies.
-        (sched_analyze_2): Adjust add_dependence calls to create data
+       (fixup_sched_groups): Clarify the change of priority of output
+       and anti dependencies.
+       (sched_analyze_2): Adjust add_dependence calls to create data
        speculative dependence.
-        (add_forward_dependence): Renamed to add_forw_dep, change prototype.
+       (add_forward_dependence): Renamed to add_forw_dep, change prototype.
        Adjust all callers.  Handle DEPS_LISTS.
-        (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
+       (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
        presence of speculation.
-        (init_dependency_caches, free_dependency_caches):
+       (init_dependency_caches, free_dependency_caches):
        Handle spec_dependency_cache.
-        (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
+       (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
        estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
        New static functions.
-        (add_or_update_back_dep, add_or_update_back_forw_dep,
+       (add_or_update_back_dep, add_or_update_back_forw_dep,
        add_back_forw_dep, delete_back_forw_dep): New functions.
        * sched-int.h (ds_t, dw_t): New typedefs.
        (struct sched_info): Add new field flags.
        (struct haifa_insn_data): Add new bitfield has_internal_dep.
        Prototype new sched-deps.c functions.
-        (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
+       (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
        (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
        MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
        BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
        SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
        SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
        New constants.
-        (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
+       (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
        New enums.
        * sched-rgn.c (current_sched_info): Initialize flags field.
        (schedule_insns): Initialize current_sched_info before the sched_init