1. 19 Mar, 2006 5 commits
    • genpreds.c (write_tm_preds_h): Add semicolon and newline at end of… · e800e79b
      genpreds.c (write_tm_preds_h): Add semicolon and newline at end of insn_extra_address_constraint declaration.
      
              * genpreds.c (write_tm_preds_h): Add semicolon and newline at
              end of insn_extra_address_constraint declaration.
      
      From-SVN: r112217
      David Edelsohn committed
    • rs6000.opt (no-fp-in-toc): Use Var not Mask. · d2894ab5
              * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
              (no-sum-in-toc): Same.
              * config/rs6000/rs6000.c (rs6000_handle_option): Use new
              variables.
              * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
              NO_FP_IN_TOC for -fPIC instead of mask.
      
              * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
              (BOOT_LDFLAGS): Delete.
              (LDFLAGS): Delete.
              * config/rs6000/t-aix52: Same.
      
              * config/rs6000/rs6000.md (store_multiple_power): Delete.
              (stmsi[345678]_power): New.
      
      From-SVN: r112215
      David Edelsohn committed
    • Correct error in PR number · 79a495f1
      From-SVN: r112212
      Paul Thomas committed
    • re PR fortran/26716 (gfortran: incorrect choice of overloaded function) · 98cb5a54
      2006-03-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/26716
      	*expr.c (external_spec_function): Permit elemental functions.
      
      	PR fortran/26716
      	*interface.c (compare_actual_formal): Detect call for procedure
      	usage and require rank checking, in this case, for assumed shape
      	and deferred shape arrays.
      	(gfc_procedure_use): Revert to pre-PR25070 call to
      	compare_actual_formal that does not require rank checking..
      
      2006-03-19  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/26716
      	* gfortran.dg/elemental_initializer_1.f90: New test.
      
      	PR fortran/26716
      	* gfortran.dg/assumed_shape_ranks_2: New test.
      
      From-SVN: r112210
      Paul Thomas committed
    • Daily bump. · 4d58f908
      From-SVN: r112208
      GCC Administrator committed
  2. 18 Mar, 2006 5 commits
  3. 17 Mar, 2006 12 commits
    • * config/ia64/ia64.opt: Add empty line to end of file. · 30b82356
      From-SVN: r112180
      Steve Ellcey committed
    • re PR target/26721 (Gcc generates unaligned access) · 445a6ba4
      2006-03-17  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/26721
      	* builtins.c (get_pointer_alignment): For component style references
      	adjust alignment to the component type alignment.  Make sure
      	to adjust alignment for component access of constants.
      
      From-SVN: r112177
      Richard Guenther committed
    • pr26350.c: New. · d550ef0b
              * gcc.target/powerpc/pr26350.c: New.
              * gcc.target/powerpc/indexed-addr.c: New.
      
      From-SVN: r112176
      David Edelsohn committed
    • rs6000.md (strlensi): Emit barrier after unconditional jump. · ea5bd0d8
      	* config/rs6000/rs6000.md (strlensi): Emit barrier after
      	unconditional jump.
      
      From-SVN: r112175
      David Edelsohn committed
    • install.texi: Docuemnt --with-mode. · 3cf94279
      2006-03-17  Paul Brook  <paul@codesourcery.com>
      
      	* doc/install.texi: Docuemnt --with-mode.
      	* config.gcc: Add --with-mode for arm*-*-*.
      	* config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
      
      From-SVN: r112174
      Paul Brook committed
    • sh.c (max_labelno_before_reorg): New variable. · 4241ecb0
      	* sh.c (max_labelno_before_reorg): New variable.
      	(sh_reorg): Initialize it.
      	(find_barrier): Check max_labelno_before_reorg before using
      	label_to_alignment.  Take length of explicit alignment insns
      	into account.  When seeing a UNSPECV_CONST_END, return it.
      
      	* sh.c (fixup_mova): Set mode of affected label to QImode.
      	(untangle_mova): New function.
      	(find_barrier): Use it.  Check mode of label before decrementing
      	num_mova.
      	(sh_reorg): Likewise.
      	Set mode of all insns back to VOIDmode.
      
      	* sh.c (MOVA_LABELREF): New macro.
      	(mova_p, fixup_mova, sh_reorg): Use it.
      	(find_barrier, sh_reorg): Don't count num_mova back to 0 unless
      	ADDR_DIFF_VEC matches mova.
      
      From-SVN: r112173
      J"orn Rennecke committed
    • dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument with ATTRIBUTE_UNUSED. · 79252435
      	* dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
      	with ATTRIBUTE_UNUSED.
      
      From-SVN: r112171
      Steven Bosscher committed
    • dwarf2out.c (dwarf2out_stack_adjust): Always track the stack pointer... · 6a037308
      * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
      pointer, instead of assuming it is possible to derive the
      correct args size from a call insn.
      
      From-SVN: r112170
      Alexandre Oliva committed
    • rtl.h (CONST_INT_P): Define. · d97c1295
      	* rtl.h (CONST_INT_P): Define.
      	* config/vax/vax.c (print_operand_address): Use CONST_INT_P()
      	instead of GET_CODE(x) == CONST_INT.
      	(vax_rtx_costs): Likewise.
      	(vax_output_int_move): Likewise.
      	(vax_output_int_add): Likewise.
      	(legitimate_constant_address_p): Likewise.
      	(index_term_p): Likewise.
      	* config/vax/vax.h (PRINT_OPERAND): Likewise.
      	* config/vax/vax.md (and<mode>3): Likewise.
      	(ashrsi3): Likewise.
      	(extv): Likewise.
      	(movstricthi): Likewise.
      	(movstrictqi): Likewise.
      	(rotrsi3): Likewise.
      	(five unnamed insns): Likewise.
      
      From-SVN: r112169
      Jan-Benedict Glaw committed
    • tm.texi (SDB and DWARF): Add extra parameter to ASM_OUTPUT_DWARF_OFFSET. · 192d0f89
      	* doc/tm.texi (SDB and DWARF): Add extra parameter to
      	ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
      	* dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
      	* dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
      	Pass to ASM_OUTPUT_DWARF_OFFSET.
      	* dwarf2out.c (debug_frame_section): New.
      	(output_call_frame_info): Use debug_frame_section.  Pass it to
      	dw2_asm_output_offset.
      	(output_die): Pass appropriate section to dw2_asm_output_offset.
      	(output_compilation_unit_header): Likewise.
      	(output_pubnames): Likewise.
      	(output_aranges): Likewise.
      	(enum dw_val_class): Break dw_val_class_lbl_offset into
      	dw_val_class_lineptr and dw_val_class_macptr.
      	(add_AT_lbl_offset): Delete.
      	(add_AT_lineptr): New.
      	(add_AT_macptr): New.
      	(AT_lbl): Expect a lineptr or macptr.
      	(print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
      	(attr_checksum): Likewise.
      	(same_dw_val_p): Likewise.
      	(size_of_die): Likewise.
      	(value_format): Likewise.
      	(output_die): Likewise.
      	(dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
      	add_AT_lbl_offset.
      	* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
      	* config/i386/i386.c (x86_file_start): Call darwin_file_start.
      	* config/darwin-protos.h (darwin_file_start): New.
      	(darwin_asm_output_dwarf_offset): New.
      	* config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
      	* config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
      	darwin_file_start.
      	* config/darwin.c (darwin_emit_unwind_label): Don't output label
      	if not EH section; simplify.
      	(darwin_file_start): New.
      	(darwin_asm_output_dwarf_offset): New.
      	* config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
      	mark as 'debug'.
      	(DEBUG_INFO_SECTION): Likewise.
      	(DEBUG_ABBREV_SECTION): Likewise.
      	(DEBUG_ARANGES_SECTION): Likewise.
      	(DEBUG_MACINFO_SECTION): Likewise.
      	(DEBUG_LINE_SECTION): Likewise.
      	(DEBUG_LOC_SECTION): Likewise.
      	(DEBUG_PUBNAMES_SECTION): Likewise.
      	(DEBUG_STR_SECTION): Likewise.
      	(DEBUG_RANGES_SECTION): Likewise.
      	(FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
      	(ASM_OUTPUT_DWARF_OFFSET): New.
      
      From-SVN: r112168
      Geoffrey Keating committed
    • Daily bump. · 8e910316
      From-SVN: r112166
      GCC Administrator committed
    • gfortran.h (gfc_equiv_info): Add length field. · 37311e71
      
      	* gfortran.h (gfc_equiv_info): Add length field.
      	* trans-common.c (copy_equiv_list_to_ns): Set the length field.
      	* dependency.c (gfc_are_equivalenced_arrays): Use both the offset
      	and length fields to determine whether the two equivalenced symbols
      	overlap in memory.
      
      	* gfortran.dg/dependency_13.f90: New test case.
      
      From-SVN: r112162
      Roger Sayle committed
  4. 16 Mar, 2006 18 commits
    • config.gcc (tm_defines): Always add to previous value rather than replacing it. · 620b87b3
      	* config.gcc (tm_defines): Always add to previous value rather
      	than replacing it.
      
      From-SVN: r112160
      Joseph Myers committed
    • predicates.md (splittable_const_int_operand): New, split from move_operand. · ea462dd0
      	* config/mips/predicates.md (splittable_const_int_operand): New,
      	split from move_operand.
      	(splittable_symbolic_operand): New.
      	(move_operand): Add commentary.  Use splittable_const_int_operand.
      	Inline mips_atomic_symbolic_constant_p.
      	* config/mips/mips.md: Add combine splitters for handling moves
      	of splittable_const_int_operands and splittable_symbolic_operands.
      	* config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
      	(mips_split_symbol): Declare.
      	(mips_move_integer): Declare.
      	* config/mips/mips.c (mips_split_p): Make global.
      	(TARGET_MIN_ANCHOR_OFFSET): Override default.
      	(TARGET_MAX_ANCHOR_OFFSET): Likewise.
      	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
      	(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
      	(mips_offset_within_object_p): Handle block symbols.
      	(mips_atomic_symbolic_constant_p): Delete.
      	(mips_cannot_force_const_mem): Return false for constants that
      	mips_legitimize_move can handle.
      	(mips_use_blocks_for_constant_p): New function.
      	(mips_split_symbol): Make global.
      	(mips_move_integer): Likewise.  Add a temporary register argument.
      	(mips_legitimize_const_move): Use splittable_const_int_operand and
      	splittable_symbolic_operand.
      	(mips_use_anchors_for_symbol_p): New function.
      	* config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
      	(mips_split_p): Declare.
      
      From-SVN: r112150
      Richard Sandiford committed
    • config.gcc (mips64*-*-linux*): Keep existing tm_defines. · 5d2a73d5
      	* config.gcc (mips64*-*-linux*): Keep existing tm_defines.
      	(mips*-*-linux*): Likewise.
      
      From-SVN: r112149
      Richard Sandiford committed
    • re PR middle-end/18259 (-fdump-tree-tu omits real constant values) · da54e73b
      2006-03-16  Roger Sayle  <roger@eyesopen.com>
      	    Daniel Speyer  <dspeyer@wam.umd.edu>
      
      	PR middle-end/18259
      	* tree-dump.c (dump_real): New function.
      	(dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
      	* Makefile.in (REAL_H): New macro for dependencies on real.h.
      	(tree-dump.o): Add $(REAL_H) to the dependencies.
      
      
      Co-Authored-By: Daniel Speyer <dspeyer@wam.umd.edu>
      
      From-SVN: r112147
      Roger Sayle committed
    • re PR libgcj/26706 ([4.1/4.2] Unexpanded macro in libjava/classpath/configure) · 3406876b
      	PR libgcj/26706:
      	* aclocal.m4, configure: Rebuilt.
      	* configure.ac (GCC_NO_EXECUTABLES): Moved earlier.
      
      From-SVN: r112142
      Tom Tromey committed
    • Fix ChangeLog typo. · 5a281edb
      From-SVN: r112138
      Paul Brook committed
    • re PR middle-end/21781 (real.c incorrectly values zero with a large exponent) · a47564c8
      
      	PR middle-end/21781
      	* real.c (real_from_string): If the mantissa is zero, don't bother
      	parsing the exponent as the result should always be zero.
      
      	* gcc.dg/real-const-1.c: New test case.
      
      From-SVN: r112136
      Roger Sayle committed
    • simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms. · 349f4ea1
      2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
      
      From-SVN: r112131
      Andreas Krebbel committed
    • ia64.c (stops_p): Added explicit initialization. · 048d0d36
      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,
      	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_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,
      	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):
      	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.
      	(ia64_reorg): Reset stops_p to NULL after it is freed.
              * 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.
      	(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.
      	(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,
      	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,
      	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-count-spec-in-critical-path): Document new flags.
      
      From-SVN: r112129
      Maxim Kuvyrkov committed
    • target.h (struct spec_info_def): New opaque declaration. · 496d7bb0
      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,
      	adjust all initializations. New fields: add_remove_insn,
              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):
      	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
      	(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.
      	(sms_sched_info): Initialize new fields.
      	(contributes_to_priority): Removed.
              * 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,
      	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,
      	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
      	consistancy checking.
      	(debug_spec_status): New function to call from debugger.
      	(priority): Added code to handle speculation checks.
      	(rank_for_schedule): Added code to distinguish speculative instructions.
      	(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.
      	(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.
      	(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
      	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,
      	fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
      	struct sched_info.
              (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.
      	(get_block_head_tail): Adjust all uses.
      	(last_was_jump): Removed.  Adjust users.
              (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
      	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.
      	(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.
      	(init_regions): Use extend_regions and check_dead_notes1.
              * 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,
      	sched-spec-prob-cutoff): Document.
      
      From-SVN: r112128
      Maxim Kuvyrkov committed
    • sched-int.h (struct haifa_insn_data): New fields: resolved_deps, inter_tick, queue_index. · 63f54b1a
      2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
      
              * 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.
      	(RESOLVED_DEPS): New access macro.
      	(ready_add): Remove prototype.
      	(try_ready): Add prototype.
      	* sched-rgn.c (init_ready_list): Use try_ready.
      	(schedule_region): Initialize
      	current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
      	* sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
      	(init_ready_list): Use try_ready.
      	(schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
      	* lists.c (remove_list_elem): Remove `static'.
      	(remove_free_INSN_LIST_elem): New function.
      	* rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
      	* haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
      	(INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
      	New constants.
      	(readyp): New variable.
      	(queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
      	change_queue_index, resolve_dep): New static functions.
      	(try_ready): New function.  Adjust callers in sched-rgn.c and
      	sched-ebb.c to use it instead of ready_add.
      	(clock_var): Move at the begining of file.
      	(rank_for_schedule): Fix typo.
      	(queue_insn): Add assertion.  Handle QUEUE_INDEX.
      	(ready_lastpos): Enforce assertion.
      	(ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
      	update all callers.
      	(ready_remove_first, ready_remove): Handle QUEUE_INDEX.
      	(schedule_insn): Rewrite to use try_ready and resolve_dep.
      	(queue_to_ready): Use free_INSN_LIST_list.
      	(early_queue_to_ready): Fix typo.
      	(schedule_block): Init readyp.  Move init_ready_list call after the
      	initialization of clock_var.  Fix error in rejecting insn by
      	targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
      	that previously	corrected INSN_TICKs.  Add code for handling
      	QUEUE_INDEX.
      	(set_priorities): Fix typo.
      	(sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
      	Clarify comment and code that keeps current_sched_info->next_tail
      	non-null.
      
      From-SVN: r112127
      Maxim Kuvyrkov committed
    • sched-rgn.c (extend_rgns): New static function. · d08eefb9
      2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
      
      	* sched-rgn.c (extend_rgns): New static function.
      	(find_rgns): Use it.
      	(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.
      
      From-SVN: r112126
      Maxim Kuvyrkov committed
    • ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call. · ddbd5439
      2006-03-16  Maxim Kuvyrkov <mkuvyrkov@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.
      	(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
      	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
      	an INSN_LIST.
              (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.
      	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
      	speculative dependence.
              (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
      	presence of speculation.
              (init_dependency_caches, free_dependency_caches):
      	Handle spec_dependency_cache.
              (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_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.
      	(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):
      	New enums.
      	* sched-rgn.c (current_sched_info): Initialize flags field.
      	(schedule_insns): Initialize current_sched_info before the sched_init
      	call.
      	* sched-ebb.c (current_sched_info): Initialize flags field.
      	(add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
      	Call add_or_update_back_dep instead of add_dependence.
      	Create control speculative dependencies.
      	(schedule_insns): Initialize current_sched_info before the sched_init
      	call.
      
      Co-Authored-By: Andrey Belevantsev <abel@ispras.ru>
      
      From-SVN: r112125
      Maxim Kuvyrkov committed
    • linux-unwind.h (shmedia_fallback_frame_state): Set fs->signal_frame. · 3062335c
      	* config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
      	fs->signal_frame.
      	(sh_fallback_frame_state): Likewise.
      
      	* include/sh-signal.h (MAKE_THROW_FRAME): Change into empty
      	macro.
      
      From-SVN: r112122
      Kaz Kojima committed
    • config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports. · 747b9f55
      2006-03-15  Geoffrey Keating  <geoffk@apple.com>
      
      	* config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
      	Do switch on default_use_cxa_atexit.
      	(powerpc*-*-darwin*): Build crt2.o on powerpc.
      	* config/darwin-crt3.o: New.
      	* config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
      	to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
      	(STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
      	OS version.
      	* config/rs6000/t-darwin: Move crt2.o building to here.
      	* config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
      	Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
      	of __cxa_atexit.
      
      2006-03-15  Geoffrey Keating  <geoffk@apple.com>
      
      	* g++.old-deja/g++.other/init18.C: New.
      	* g++.old-deja/g++.other/init5.C: Remove xfail.
      
      From-SVN: r112121
      Geoffrey Keating committed
    • re PR classpath/26688 (Classpath Makefiles assume CVS source control) · 289e97d2
      	PR libgcj/26688:
      	* lib/Makefile.in: Rebuilt.
      	* lib/Makefile.am (propertydirs): Ignore .svn directories.
      	(metafiles): Likewise.
      
      From-SVN: r112115
      Tom Tromey committed
    • vax.c (nonindexed_address_p): Change logical negation from '! · 79166a87
      	* config/vax/vax.c (nonindexed_address_p): Change logical negation
      	from '! xxx' to '!xxx' for coding-style conformance.
      	* config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
      	(EXTRA_CONSTRAINT): Likewise.
      	* config/vax/vax.md (four unnamed insns): Likewise.
      
      From-SVN: r112113
      Jan-Benedict Glaw committed
    • pr15551.C: Cleanup temp file. · 7e55aa4e
      	* g++.dg/opt/pr15551.C: Cleanup temp file.
      
      From-SVN: r112108
      Kaveh R. Ghazi committed