- 16 Mar, 2006 11 commits
-
-
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 -
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 -
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 -
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 -
* 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 -
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 -
PR libgcj/26688: * lib/Makefile.in: Rebuilt. * lib/Makefile.am (propertydirs): Ignore .svn directories. (metafiles): Likewise. From-SVN: r112115
Tom Tromey committed -
* 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 -
* g++.dg/opt/pr15551.C: Cleanup temp file. From-SVN: r112108
Kaveh R. Ghazi committed -
From-SVN: r112106
GCC Administrator committed -
gcc/java * jcf-write.c (generate_bytecode_insns): Use qualifying type for non-static method calls. libjava * testsuite/libjava.jacks/jacks.xfail: Removed 13.1-runtime-method-5. From-SVN: r112102
Tom Tromey committed
-
- 15 Mar, 2006 17 commits
-
-
2006-03-15 Paul Brook <paul@codesourcery.com> * config/arm/arm.c (minipool_pad): New. (add_minipool_forward_ref): Unclude pool alignment padding in address calculation. (push_minipool_fix): Set minipool_pad. (minipool_pad): Ditto. From-SVN: r112099
Paul Brook committed -
* java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its declaration. From-SVN: r112098
David Daney committed -
* lang.opt (-freduced-reflection): New option. * lang.c (java_post_options): Generate an error if -freduced-reflection used with -fjni or -findirect-dispatch. * java-tree.h (flag_reduced_reflection): Declare new variable. * boehm.c (get_boehm_type_descriptor): Indicate all pointers if bitmap overflows and flag_reduced_reflection set. * class.c (uses_jv_markobj_p): New function. (make_class_data): Moved generation of vtable to before reflection data, generate less reflection data if flag_reduced_reflection set. * gcj.texi: Document -freduced-reflection. From-SVN: r112095
David Daney committed -
From-SVN: r112094
Tom Tromey committed -
gcc/java PR java/26390: * class.c (get_interface_method_index): Don't put <clinit> into interface table. libjava PR java/26390: * link.cc (get_interfaces): Skip <clinit>. (append_partial_itable): Likewise. From-SVN: r112093
Tom Tromey committed -
From-SVN: r112092
Tom Tromey committed -
vax.c (split_quadword_operands): Use MEM_P() instead of GET_CODE() == MEM and REG_P() instead of GET_CODE() == REG. * config/vax/vax.c (split_quadword_operands): Use MEM_P() instead of GET_CODE() == MEM and REG_P() instead of GET_CODE() == REG. (print_operand_address): Likewise. (vax_address_cost): Likewise. (vax_rtx_costs): Likewise. (vax_notice_update_cc): Likewise. (vax_output_int_add): Likewise. (INDEX_REGISTER_P): Likewise. (BASE_REGISTER_P): Likewise. (nonindexed_address_p): Likewise. (vax_mode_dependent_address_p): Likewise. * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise. (PRINT_OPERAND): Likewise. * config/vax/vax.md (ashlsi3): Likewise. (ashlsi3): Likewise. (some more unnamed insns): Likewise. From-SVN: r112090
Jan-Benedict Glaw committed -
* tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an iterator-style macro. (mark_control_dependent_edges_necessary): Update the use of EXECUTE_IF_CONTROL_DEPENDENT. From-SVN: r112089
Kazu Hirata committed -
* config/sh/predicates.md (cache_address_operand): Special. (ua_address_operand): Likewise. From-SVN: r112085
J"orn Rennecke committed -
PR c++/6634 decl.c (grokdeclarator): Do not accept long long double. Reorganize checks for invalid (combinations of) type modifiers. Quote modifiers in messages. g++.dg/parse/long1.C: New test. From-SVN: r112084
Volker Reichelt committed -
* src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments passed with FP registers correctly. (ffi_closure_helper_SYSV): Likewise. * src/sh64/sysv.S: Likewise. From-SVN: r112083
Kaz Kojima committed -
* haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle loop notes. * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto. From-SVN: r112082
Zdenek Dvorak committed -
* gensupport.c (identify_predicable_attribute): Don't free p_false when it is still in use. From-SVN: r112081
Andreas Schwab committed -
* config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify the default setting here. From-SVN: r112080
Eric Botcazou committed -
2006-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/19101 * gfortran.dg/continuation.f90: New test. * gfortran.dg/fmt_read_bz_bn.f90: Fix use of continuation. From-SVN: r112079
Jerry DeLisle committed -
2006-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/19101 * gfortran.h: Add warn_ampersand. * invoke.texi: Add documentation for new option. * lang.opt: Add Wampersand. * options.c (gfc_init_options): Initialize warn_ampersand. (gfc_post_options): Set the warn if pedantic. (set_Wall): Set warn_ampersand. (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003. * scanner.c (gfc_next_char_literal): Add test for missing '&' in continued character constant and give warning if missing. From-SVN: r112078
Jerry DeLisle committed -
From-SVN: r112074
GCC Administrator committed
-
- 14 Mar, 2006 12 commits
-
-
* tree-pass.h (pass_cfg): Remove. * alias.c (rest_of_handle_cfg, pass_cfg): Remove. * passes.c (pass_cfg): Don't run it. From-SVN: r112069
Steven Bosscher committed -
From-SVN: r112068
Janne Blomqvist committed -
PR middle-end/26684 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef STACK_REGS. From-SVN: r112067
Kazu Hirata committed -
PR 18537 * gfortran.h: Wrap Copyright line. (gfc_option_t): add warn_tabs member. * lang.opt: Update Coyright year. Add the Wtabs. * invoke.texi: Document -Wtabs. * scanner.c (gfc_gobble_whitespace): Use warn_tabs. Add linenum to suppress multiple warnings. (load_line): Use warn_tabs. Add linenum, current_line, seen_comment to suppress multiple warnings. * options.c (gfc_init_options): Initialize warn_tabs. (set_Wall): set warn_tabs for -Wall. (gfc_post_options): Adjust flag_tabs depending on -pedantic. (gfc_handle_option): Process command-line option -W[no-]tabs From-SVN: r112066
Steven G. Kargl committed -
From-SVN: r112062
Kazu Hirata committed -
* config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove. * system.h (UNALIGNED_WORD_ASM_OP): Poison. From-SVN: r112061
Kazu Hirata committed -
* Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h. * reg-stack.c (stack_regs_mentioned_data): Change the type to VEC(char,heap) *. (stack_regs_mentioned): Update the uses of stack_regs_mentioned_data. Don't access the array beyond its end. (reg_to_stack): Update the uses of stack_regs_mentioned_data. Don't include gt-reg-stack.h. From-SVN: r112060
Kazu Hirata committed -
From-SVN: r112059
Jason Merrill committed -
* pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo. From-SVN: r112053
John David Anglin committed -
2006-03-14 Richard Guenther <rguenther@suse.de> * configure: Regenerate with autoconf 2.13. From-SVN: r112052
Richard Guenther committed -
2006-03-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/26672 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in SSA form. * gcc.dg/torture/pr26672.c: New testcase. From-SVN: r112050
Richard Guenther committed -
re PR tree-optimization/26667 (Inlining always_inline functions causes further inlining that reduces function size to fail) 2006-03-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/26667 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct node for the callees. Always allow inlining if it will shrink the function size. From-SVN: r112049
Richard Guenther committed
-