aboutsummaryrefslogtreecommitdiff
path: root/gcc/df.h
AgeCommit message (Collapse)AuthorFilesLines
2007-07-07auto-inc-dec.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* auto-inc-dec.c, config/arm/arm.c, config/m32r/constraints.md, config/mips/mips.md, config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c, df-problems.c, df-scan.c, df.h, dse.c, gimplify.c, tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment typos. Follow spelling conventions. * doc/invoke.texi, doc/rtl.texi: Fix typos. From-SVN: r126439
2007-06-19df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.Kenneth Zadeck1-3/+11
2007-06-15 Kenneth Zadeck <zadeck@naturalbridge.com> * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. (struct df_problem.free_blocks_on_set_blocks): New field. (struct dataflow.optional_p): New field. (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. (df_live_set_all_dirty): New function. * df-scan.c (df_scan_alloc): Initialize optional_p. (problem_SCAN): Initialize free_blocks_on_set_blocks. * df-core.c (df_set_blocks): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now uses df_problem.free_blocks_on_set_blocks to determine which blocks are recycled. (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM. (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now uses dataflow.optional_p to determine if problem should be deleted. (rest_of_handle_df_initialize): Only start live problem if -02 or above. (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p. (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN, problem_NOTE): Initialize free_blocks_on_set_blocks. (df_lr_bb_local_compute): Recompute luids if df_live problem is not active. (df_live_set_all_dirty, df_note_alloc): New function. * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to df_get_live_*. * sched_ebb.c (compute_jump_reg_dependencies): Ditto. * postreload.c (reload_combine): Ditto. * cse.c (cse_extended_basic_block): Ditto. * regmove.c (mark_flags_life_zones): Ditto. * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq, erase_matching_seqs): Ditto. * bt-load.c (compute_defs_uses_and_gen): Ditto. * integrate (allocate_initial_values): Ditto. * combine.c (reg_dead_at_p): Ditto. * resource.c (mark_target_live_regs): Ditto. * sched-rgn.c (check_live_1, update_live_1): Ditto. * config/sh/sh.c (find_r0_life_regions): Ditto. * global.c (rest_of_handle_global_alloc): Only add back df_live for -O > 1. * local-alloc.c (rest_of_handle_local_alloc): Only remove df_live for -O > 1. * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to df_get_live_*. (if_convert): Make sure df_live is there at -O == 1. (pass_if_after_combine): Cleanup flags. * init-regs.c (initialize_uninitialized_regs): Make sure df_live is there at -O == 1. From-SVN: r125857
2007-06-13auto-inc-dec.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S, config/sh/divcost-analysis, dbgcnt.def, df-core.c, df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c, tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c, tree-vect-transform.c: Fix comment typos. Follow spelling conventions. From-SVN: r125666
2007-06-11Merge dataflow branch into mainlineDaniel Berlin1-241/+586
From-SVN: r125624
2007-03-20re PR middle-end/30907 (Propagation of addresses within loops pessimizes code)Paolo Bonzini1-4/+4
2007-03-19 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/30907 * fwprop.c (forward_propagate_into): Never propagate inside a loop. (fwprop_init): Always call loop_optimizer_initialize. (fwprop_done): Always call loop_optimizer_finalize. (fwprop): We always have loop info now. (gate_fwprop_addr): Remove. (pass_fwprop_addr): Use gate_fwprop as gate. PR rtl-optimization/30841 * df-problems.c (df_ru_local_compute, df_rd_local_compute, df_chain_alloc): Call df_reorganize_refs unconditionally. * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change refs_organized to refs_organized_size. (df_ref_create_structure): Use refs_organized_size instead of bitmap_size if refs had been organized, and keep refs_organized_size up-to-date. * df.h (struct df_ref_info): Change refs_organized to refs_organized_size. (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of bitmap_size. From-SVN: r123084
2007-02-18cfgloop.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c, config/i386/athlon.md, config/ia64/ia64.md, config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md, df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c, ipa-prop.h, see.c, struct-equiv.c, tree-inline.c, tree-ssa-loop-niter.c, tree-vect-analyze.c, tree-vect-transform.c: Fix comment typos. From-SVN: r122080
2006-05-28cfgcleanup.c, [...]: Fix comment typos.Kazu Hirata1-2/+2
* cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c, config/fr30/fr30.md, config/i386/i386-interix.h, config/i386/i386.c, config/i386/i386.md, config/sh/superh.h, config/sh/superh64.h, config/v850/v850.c, df-core.c, df-problems.c, df.h, except.c, final.c, haifa-sched.c, lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c, reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c, tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos. Follow spelling conventions. * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos. Follow spelling conventions. From-SVN: r114168
2006-05-23df-core.c: Added to header comments.Kenneth Zadeck1-23/+53
2006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com> * df-core.c: Added to header comments. * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info, df_urec_bb_info): Added comments. * df-problems (df_ref_bitmap, ru, rd, lr, ur, urec, ri problems): Fixed header comments. (df_ru_transfer_function): Fixed in-out set dyslexia when copying code from df_rd_transfer_function. From-SVN: r114024
2006-05-19re PR rtl-optimization/26855 (ICE in add_deps_for_def with -fmodulo-sched ↵Daniel Berlin1-91/+126
-maltivec) 2006-05-19 Daniel Berlin <dberlin@dberlin.org> Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/26855 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for multiword refs. (df_scan_alloc): Added code to properly handle multiword hard registers and add all_blocks parameter. (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added code to properly handle multiword hard registers. (df_rescan_blocks): Added code to remove deleted blocks from bitmap. (df_ref_create_structure, df_ref_record): Added code to properly handle subregs. (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER and set DF_REF_PARTIAL. (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER. (df_uses_record): Added DF_REF_PARTIAL for subreg. (df_scan_add_problem): Added flags parameter. (df_ref_create_structure): Changed switching structure. (df_bb_refs_record): Fixed case where duplicate artificial refs were created. Changed location of flags. (df_record_entry_block_defs): Added code to make stack pointer live in entry block. Refined cases where frame pointer is needed. Changed location of flags. (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags. (df_set_state): Removed function. (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete, df_ref_create_structure): Formatting changes. * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags, df_delete_basic_block): New function. (df_init): Changed location of flags. (df_add_problem): Added flags parameter and the way flags are processed. (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref, debug_df_chain): Improved debugging output. (df_insn_debug, df_insn_uid_debug): Added multiword reg support. (df_refs_chain_dump): Removed df parameter. (df_iterative_dataflow): Added consistency check. (df_prune_to_subcfg): Made public. (df_analyze_problem): Added blocks_to_init parameter and made public. (df_ref_record, df_bb_refs_record, df_mark_reg, df_record_exit_block_uses): Whitespace changes. (df_dump): Whitespace changes. * df.h: Some reordering to remove forward references. (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL, DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields. (df_ref_flags.DF_REF_CLOBBER): Deleted field. (dataflow.flags): New field. (df.flag): Deleted field. (df_alloc_function): Added additional bitmap parameter. (df_dependent_problem_function): New type. (df_problem.changeable_flags): New field. (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL, DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed. (df_mw_hardreg): New struct. (DF_INSN_UID_MWS): New macro. (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df parameter. (df_add_problem, df_ru_add_problem, df_rd_add_problem, df_lr_add_problem, df_ur_add_problem, df_urec_add_problem, df_ri_add_problem, df_scan_add_problem): Added flags parameter. (df_set_state): Removed function. (df_set_flags, df_clear_flags, df_delete_basic_block) New functions. * df-problems.c (df_chain_dump): Removed df parameter. (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc, df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks parameter. (df_ru_alloc, df_rd_alloc): Now resets all blocks. (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute, df_chain_create_bb, df_create_unused_note, df_ri_bb_compute): Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and DF_REF_MUST_CLOBBER cases. (df_ru_bb_local_compute_process_def, df_rd_bb_local_compute_process_def, df_lr_bb_local_compute, df_lr_bb_local_compute, df_ur_bb_local_compute, df_chain_create_bb): Made subreg aware. (df_ru_bb_local_compute, df_rd_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute, df_chain_create_bb): Cleanup to use proper macros. (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary code to fixup bitvectors. (df_ri_alloc): Cleared lifetime. (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw, df_create_unused_note): New function. (df_ri_bb_compute, df_ri_compute): Added code to create/update REG_DEAD and REG_UNUSED notes as well as register information. (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump, df_chains_dump): Fixed crash if problem was never run. (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem, df_ur_add_problem, df_urec_add_problem, df_chain_add_problem, df_ri_add_problem): Processes flags in uniform manner. (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free, df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free, df_rd_dump, df_urec_free_bb_info): Formatting changes. (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump, df_rd_free_bb_info, df_rd_bb_local_compute_process_def, df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info, df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info, df_ur_dump, df_urec_free_bb_info, df_urec_dump, df_chain_create_bb, df_ri_bb_compute): Whitespace changes. * modulo-sched.c (sms_schedule): Added flag parameter to calls. * see.c (see_initialize_data): Ditto. * final.c (rest_of_clean_state) Added regstack_completed. * rtl.h (regstack_completed): Ditto. * reg-stack.c (regstack_completed): Ditto. From-SVN: r113915
2006-05-04[multiple changes]Razya Ladelsky1-0/+19
2006-05-04 Leehod Baruch <leehod@il.ibm.com> * see.c: New file. * Makefile.in (OBJS-common): Add see.o. (see.o): Add dependencies. * common.opt (fsee): New flag for the see optimization was added. * opts.c (flag_see): Initialized. * passes.c (init_optimization_passes, pass_see): New pass. * rtl.h (see_main): Declaration as extern. * timevar.def (TV_SEE): New. * tree-pass.h (pass_see): Declaration as extern. * invoke.texi (-fsee): Document. * recog.c (validate_simplify_insn): New function. * recog.h (validate_simplify_insn): Declaration as extern. * df-problems.c (df_chain_dump): Check for NULL. 2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com> Daniel Berlin <dberlin@dberlin.org> * cfgrtl.c (insert_insn_bb_end_new): New function. * basic-block.h (insert_insn_bb_end_new): Declaration as extern. 2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il> * df.h (struct web_entry): Moved from web.c. (union_defs): Declaration as extern. (unionfind_root): Likewise. (unionfind_union): Likewise. * web.c (struct web_entry): Moved to df.h. (unionfind_root): Remove static declaration. (unionfind_union): Likewise. (union_defs): Likewise and generalize to use callback function. (web_main): Update arguments for union_defs function call. From-SVN: r113518
2006-03-04builtins.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c, combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c, config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c, config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c, df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c, loop-invariant.c, omp-low.c, opts.c, passes.c, rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c, tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c, tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c, tree-vect-patterns.c, tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c, unwind-dw2.c: Fix comment typos. Follow spelling conventions. From-SVN: r111721
2006-02-08df.h (DF_REG_SIZE): Return the length of the initialized part of the array.Zdenek Dvorak1-1/+1
* df.h (DF_REG_SIZE): Return the length of the initialized part of the array. From-SVN: r110746
2006-01-27re PR rtl-optimization/24762 ([killloop-branch] code motion of non-invariant ↵Daniel Berlin1-4/+11
expressions with hard registers.) 2006-01-27 Daniel Berlin <dberlin@dberlin.org> Kenneth Zadeck <zadeck@naturalbridge.com> PR rtl-optimization/24762 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY. * targhooks.c (hook_void_bitmap): New hook prototype. * targhoohs.h (hook_void_bitmap): Ditto. * bitmap.h (bitmap_head_def): Moved to coretypes.h. * coretypes.h (bitmap_head_def): Moved from bitmap.h. * target.h (live_on_entry): New function pointer. * df-scan.c (df_all_hard_regs): Removed. (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs. (df_scan_free_internal): Added df->entry_block_defs. (df_scan_alloc): Ditto. (df_scan_dump): Ditto. (df_uses_record): Plumbed flag field properly thru calls. Record EH_RETURN_DATA_REGNO in eh blocks unconditionally. This part fixes PR24762. (df_bb_refs_record): Added code to make the frame and arg pointers live in EH blocks. (df_refs_record): Added call to df_record_entry_block_defs. (df_record_entry_block_defs): New function. * df-core.c: Added comments to describe new artifical defs. * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags. (entry_block_defs): New field in struct df. (df_all_hard_regs): Deleted. * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY. * df-problems.c (df_ru_bb_local_compute_process_def): Added code to handle artifical defs in the entry to a function. (df_ru_bb_local_compute): Ditto. (df_rd_bb_local_compute_process_def): Ditto. (df_rd_bb_local_compute): Ditto. (df_lr_bb_local_compute): Ditto. (df_ur_bb_local_compute): Ditto. (df_urec_bb_local_compute): Ditto. (df_chain_create_bb): Ditto. (df_ur_local_finalize): Removed entry. (df_urec_init): Ditto. (df_urec_local_finalize): Ditto. (df_ri_bb_compute): Added detection of last use of pseudos. * Makefile.in (df-scan.o): Updated dependencies. * config/mips/mips-protos.h (mips_set_live_on_entry): Added. * config/mips/mips.c (mips_set_live_on_entry): Added. * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value for target hook. * dce.c (marked_insn_p): Added code to handle artifical defs. Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com> From-SVN: r110312
2006-01-21df-scan.c (problem_SCAN): Added NULL reset function.Kenneth Zadeck1-1/+10
2005-01-21 Kenneth Zadeck <zadeck@naturalbridge.com> * df-scan.c (problem_SCAN): Added NULL reset function. (df_scan_reset_blocks): Added code to call reset block function (df_bb_refs_delete) Fixed comment. (df_insn_refs_delete): Made tolerant of deleting non existent info for dataflow problems that need to be reset. * df-core.c (df_set_blocks): Ditto. * df.h (struct df_problem): Added reset_fun. * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR, problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field. (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New functions to clear out all references to def-use or use-def chains. From-SVN: r110066
2006-01-20df-scan.c (df_scan_free_bb_info): Added basic block parameter to be able to ↵Kenneth Zadeck1-1/+2
clean out basic block when not necessary. 2005-01-19 Kenneth Zadeck <zadeck@naturalbridge.com> * df-scan.c (df_scan_free_bb_info): Added basic block parameter to be able to clean out basic block when not necessary. (df_scan_free): Fixed to properly delete information if df is unused before calling df_finish. (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink, df_insn_create_insn_record, df_bb_refs_record): Fixed formatting or comment typos. (df_bb_refs_delete): New function. (df_refs_delete): Moved per block code to df_bb_refs_delete. * df-core.c (df_set_blocks): Added code to properly clean out unused blocks if they are not part of the blocks to consider. Added additional null check. (df_compact_blocks): Added basic block parameter to free_bb_fun to be able to clean out basic block when not necessary * df.h (df_free_bb_function): Ditto. (df_bb_refs_delete): New function. * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info, df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added basic block parameter to be able to clean out basic block when not necessary. (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test. (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free): Fixed to properly delete information if df is unused before calling df_finish. From-SVN: r110009
2006-01-11df.h (DF_SCAN, [...]): New macros.Daniel Berlin1-230/+440
2005-01-11 Danny Berlin <dberlin@dberlin.org> Kenneth Zadeck <zadeck@naturalbridge.com> * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN, DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN, DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS, DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO, DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT, DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN, DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO, DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG, DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P, DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P, DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET, DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET, DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF, DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET, DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC): New macros. (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function, df_free_bb_function, df_local_compute_function, df_init_function, df_dataflow_function, df_confluence_function_0, df_confluence_function_n, df_transfer_function, df_finalizer_function, df_free_function, df_dump_problem_function, df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link, df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info, df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info, df_urec_bb_info, ) New types. (df_invalidated_by_call, df_all_hard_regs, df_state) New public variables. (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze, df_analyze_simple_change_some_blocks, df_analyze_simple_change_one_block, df_compact_blocks, df_bb_replace, df_bb_regno_last_use_find, df_bb_regno_first_def_find, df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def, df_find_use, df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump, df_regs_chain_dump, df_insn_debug, df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno, debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref, debug_df_chain, df_get_dependent_problem, df_chain_create, df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info, df_chain_dump, df_print_bb_index, df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem, df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info, df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem, df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem, df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem, df_rescan_blocks, df_ref_create, df_get_artificial_defs, df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink, df_ref_remove, df_insn_refs_delete, df_refs_delete, df_reorganize_refs, df_set_state, df_hard_reg_init, df_read_modify_subreg_p) New public functions. * df-core.c: The core dataflow solver and glue routines for rtl dataflow. (df_init, df_add_problem, df_set_blocks, df_finish, df_hybrid_search_forward, df_hybrid_search_backward, df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem, df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace, df_bb_regno_last_use_find, df_bb_regno_first_def_find, df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def, df_reg_defined, df_find_use, df_reg_used, df_dump, df_refs_chain_dump, df_regs_chain_dump, df_insn_debug, df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno, debug_df_useno, reset_df_after_reload): New functions. * df-scan.c: The scanning fuctions, once in df.c, completely rewritten so that they now fully model the functionality of register usage at the backend. (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info, df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump, df_scan_add_problem, df_grow_reg_info, df_grow_ref_info, df_grow_insn_info, df_rescan_blocks, df_ref_create, df_get_artificial_defs, df_get_artificial_uses, df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink, df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete, df_refs_delete, df_reorganize_refs, df_set_state, df_ref_create_structure, df_ref_record, df_read_modify_subreg_p, df_def_record_1, df_defs_record, df_uses_record, df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record, df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg, df_record_exit_block_uses, df_hard_reg_init): New functions. * df-problems.c: Seven concrete dataflow problems that use the scanning in df-scan.c and are solved by the engine in df-core.c. (df_get_dependent_problem, df_chain_create, df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info, df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen, df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info, df_ru_free_bb_info, df_ru_alloc, df_ru_bb_local_compute_process_def, df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, df_ru_transfer_function, df_ru_free, df_ru_dump, df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info, df_rd_free_bb_info, df_rd_alloc, df_rd_bb_local_compute_process_def, df_rd_bb_local_compute, df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n, df_rd_transfer_function, df_rd_free, df_rd_dump, df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info, df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_confluence_0, df_lr_confluence_n, df_lr_transfer_function, df_lr_free, df_lr_dump, df_lr_add_problem, df_ur_get_bb_info, df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc, df_ur_bb_local_compute, df_ur_local_compute, df_ur_init, df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function, df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info, df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc, df_urec_mark_reg_change, df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber, df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, df_urec_local_compute, df_urec_init, df_urec_local_finalize, df_urec_confluence_n, df_urec_transfer_function, df_urec_free, df_urec_dump, df_urec_add_problem, df_chain_alloc, df_chain_create_bb_process_use, df_chain_create_bb, df_chain_finalize, df_chain_free, df_chains_dump, df_chain_add_problem, df_ri_alloc, df_ri_bb_compute, df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem, df_reg_lifetime): New functions. * df.c: Deleted file. * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code consistent with new df api. * modulo-sched.c (sms_schedule, rest_of_handle_sms, rest_of_handle_sms): Ditto. * web.c (unionfind_union, union_defs, entry_register, web_main): Ditto. * loop_invariant.c (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p, find_defs, check_dependencies, find_invariant_insn, find_invariants_to_move, move_invariant_reg, free_inv_motion_data, move_loop_invariants): Ditto. * sched-deps.c (sched_analyze_1): Ditto. Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com> From-SVN: r109577
2005-12-22df.c (df_bitmaps_free): Only work for bbs for that structures are allocated.Zdenek Dvorak1-0/+2
* df.c (df_bitmaps_free): Only work for bbs for that structures are allocated. (df_bb_modify): Realloc tables to the new index. (df_find_use): New function. (df_find_def, df_reg_used): Handle subregs. * df.h (df_find_use): Declare. * loop-invariant.c: Include hashtab.h. (struct invariant): Remove processed field, add eqto and reg fields. (struct invariant_expr_entry): New. (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p, hash_invariant_expr, eq_invariant_expr, find_or_insert_inv, find_identical_invariants, merge_identical_invariants): New functions. (create_new_invariant): Return the new invariant. Initialize new fields. (find_invariants): Call merge_identical_invariants. (get_inv_cost, best_gain_for_invariant, set_move_mark, move_invariant_reg): Handle equivalent invariants. * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency. Co-Authored-By: Steven Bosscher <stevenb@suse.de> From-SVN: r108949
2005-12-17basic-block.h: Changed basic block numbering so that the entry block is 0 ↵Daniel Berlin1-3/+0
and the exit block is 1. 2005-12-17 Danny Berlin <dberlin@dberlin.org> Kenneth Zadeck <zadeck@naturalbridge.com> * basic-block.h: Changed basic block numbering so that the entry block is 0 and the exit block is 1. Changed insn iterators so that they are tolerant of blocks with no insns. * regrename.c (copyprop_hardreg_forward): Changed basic block numbering so that the entry block is 0 and the exit block is 1. * sched-ebb.c (sehedule_ebbs): Ditto. * tracer.c (branch_ratio_cutoff): Ditto. * cfgloopmanip.c (fix_loop_structure): Ditto. * cfghooks.c (verify_flow_info): Ditto. * cfg.c (compact_blocks): Ditto. * reorg.c (dbr_schedule): Ditto. * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto. * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree, calculate_dominance_info): Ditto. * cfganal.c (create_edge_list, print_edge_list, flow_depth_first_order_compute, flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute, dfs_enumerate_from): Ditto. * global.c (global_alloc, set_up_bb_rts_numbers): Ditto. * ifcvt.c (find_if_case_2): Ditto. * cfgbuild.c (control_flow_insn_p, count_basic_blocks, find_basic_blocks): Ditto. * predict.c (predict_loops, tree_bb_level_predictions, predict_paths_leading_to, propagate_freq): Ditto. * lcm.c (compute_antinout_edge, compute_laterin, compute_available): Ditto. * function.c (thread_prologue_and_epilogue_insns): Ditto. * gcse.c (gcse_main, bypass_jumps): Ditto. * profile.c (compute_branch_probabilities, compute_value_histograms, branch_prob): Ditto. * tree-flow-inline.h (bsi_start, bsi_after_labels, bsi_last): Ditto. * tree-ssa-phiopt.c (tree_ssa_phiopt, blocks_in_phiopt_order): Ditto. * bt-load.c (compute_defs_uses_and_gen, compute_kill, compute_out, link_btr_uses, migrate_btr_defs): Ditto. * tree-dfa.c (collect_dfa_stats): Ditto. * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto. * cfglayout.c (fixup_reorder_chain): Ditto. * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos, partition_hot_cold_basic_blocks): Ditto. * var-tracking.c (vt_find_locations): Ditto. * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto. * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto. * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto. * tree-ssa-reassoc.c (init_reassoc): Ditto. * cfgrtl.c (entry_of_function, rtl_verify_flow_info, rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto. * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto and removed unused reverse orders. * df.h (): Ditto. * combine.c: Fix document typo. Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com> From-SVN: r108713
2005-06-25Update FSF address.Kelley Cook1-2/+2
From-SVN: r101317
2005-05-26df.h (DF_SUBREGS, [...]): New.Paolo Bonzini1-4/+7
2005-05-26 Paolo Bonzini <bonzini@gnu.org> * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New. * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New. From-SVN: r100197
2005-02-10* df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.Kazu Hirata1-14/+1
From-SVN: r94839
2005-02-07cfgcleanup.c, [...]: Update copyright.Kazu Hirata1-1/+2
* cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h, config/darwin7.h, config/mips/mips.c, config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm: Update copyright. From-SVN: r94704
2005-02-02df.c (df_def_record_1, [...]): Don't use DF_FOR_REGALLOC.Kazu Hirata1-1/+0
* df.c (df_def_record_1, df_uses_record): Don't use DF_FOR_REGALLOC. * df.h (DF_FOR_REGALLOC): Remove. From-SVN: r94608
2004-11-17basic-block.h, [...]: Remove unused prototypes.Kazu Hirata1-2/+0
* basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h, tree-chrec.h, tree-flow.h, tree-scalar-evolution.h, tree-ssa-live.h, tree.h: Remove unused prototypes. From-SVN: r90821
2004-06-10Makefile.in (df.o): Remove fibheap dependency.Zdenek Dvorak1-20/+33
* Makefile.in (df.o): Remove fibheap dependency. * df.h: Do not include sbitmap.h. (struct ref): New field "data". (DF_REF_DATA): New accessor macro. (struct df): Field "dom" removed. (df_analyze_subcfg): New function. (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ... (transfer_function): ... new type. (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ... (iterative_dataflow): ... new function. (enum set_representation, struct dataflow): New. * df.c: Do not include fibheap.h. (df_reg_def_chain_clean, df_reg_use_chain_clean, (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain, prune_to_subcfg, df_bb_modify): New functions. (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create, df_refs_update, df_reg_table_realloc, df_ref_create, df_bb_reg_def_chain_create, df_bb_reg_use_chain_create, df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute, df_analyse_1, df_insn_modify): Support analysing only a part of the cfg. (dataflow_set_a_op_b, dataflow_set_copy): New functions. (df_rd_transfer_function, df_ru_transfer_function, df_lr_transfer_function): Type of bitmaps changed to void *. (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ... (hybrid_search): ... new function. (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ... (iterative_dataflow): ... new function. Avoid use of fibheaps for a worklist. Do not process basic blocks unnecessarily. From-SVN: r82921
2004-06-03Makefile.in (RA_H, [...]): New.Jerry Quinn1-0/+9
2004-06-03 Jerry Quinn <jlquinn@optonline.net> * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H, CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New. (TARGET_H): Add insn-modes.h. (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o, loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o, loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o, predict.o, cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H. (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o, bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with CFGLAYOUT_H. (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o): Replace ra.h with RA_H. (resource.o, regrename.o, insn-conditions.o, insn-emit.o, insn-recog.o): Replace resource.h with RESOURCE_H. (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h with SCHED_INT_H. (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o): Replace df.h with DF_H. (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H. (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o): Replace tree-ssa-live.h with TREE_SSA_LIVE_H. (insn-conditions.o): Remove unused reload.h. * cfglayout.h: Add include guard. Include basic-block.h. * cfgloop.h: Add include guard. Include basic-block.h, rtl.h. * ddg.h: Include sbitmap.h, basic-block.h, df.h. * df.h: Add include guard. Include bitmap.h, sbitmap.h, basic-block.h. * genconditions.c: Remove reload.h. * ra.h: Add include guard. Include bitmap.h, sbitmap.h, hard-reg-set.h, insn-modes.h. * resource.h: Add include guard. Include hard-reg-set.h. * sched-int.h: Add include guard. Include insn-attr.h, basic-block.h, rtl.h. * target.h: Add include guard. Include insn-modes.h. * tree-ssa-live.h: Include partition.h. From-SVN: r82600
2004-05-30c-common.c, [...]: Fix comment typos.Kazu Hirata1-1/+1
* c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c, ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h, fold-const.c, gcc.c, gimplify.c, haifa-sched.c, modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c, tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix comment typos. Follow spelling conventions. From-SVN: r82439
2004-05-25ddg.h, [...]: New files.Ayal Zaks1-0/+9
* ddg.h, ddg.c, modulo-sched.c: New files. * cfglayout.c (duplicate_insn_chain): Remove "static" and push internals to "dupicate_insn". (duplicate_insn): New function. * cfglayout.h (duplicate_insn_chain, duplicate_insn): New declarations. * common.opt (fmodulo-sched): New flag. * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find): Remove static and forward declaration. (df_find_def, df_reg_used, df_bb_regno_last_def_find): New functions. * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find, df_bb_regno_last_def_find, df_find_def, df_reg_used): New declarations. * flags.h (flag_modulo_sched): New flag. * opts.c (common_handle_option): Handle modulo-sched flag. * params.def (max-sms-loop-number, sms-max-ii-factor, sms-dfa-history, sms-loop-average-count-threshold): New parameters. * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR, SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New parameters. * passes.c ("sms", "sms-vcg"): New dumps. (rest_of_handle_sched): Call sms_schedule. * rtl.h (sms_schedule): New declaration. * timevar.def (TV_SMS): New. * toplev.c (flag_modulo_sched): Initialize. (f_options): Handle -fmodulo-sched option. * docs/invoke.texi: Document -fmodulo-sched & -dm options. * docs/passes.texi: Document new SMS pass.f toplev.c doc/invoke.texi doc/passes.texi Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com> From-SVN: r82235
2004-04-04* df.h: Tidy up whitespace in the definitions of the DF_ flags.Roger Sayle1-10/+10
From-SVN: r80399
2004-02-24df.c, [...]: Replace df_analyse with df_analyze.Kazu Hirata1-1/+1
* df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace df_analyse with df_analyze. From-SVN: r78363
2004-02-04alloc-pool.h, [...]: Update copyright.Kazu Hirata1-1/+1
gcc/ * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h, caller-save.c, df.h, genconfig.c, global.c, lcm.c, ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c, sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md, config/arm/fpa.md, config/arm/iwmmxt.md, config/arm/netbsd-elf.h, config/arm/netbsd.h, config/m68hc11/m68hc11.md, config/mips/iris5.h, config/mn10300/mn10300.md, config/rs6000/altivec.md, config/sparc/netbsd-elf.h: Update copyright. cp/ * error.c, search.c: Update copyright. java/ * typeck.c: Update copyright. From-SVN: r77265
2004-01-31alloc-pool.c: Fix comment typos.Kazu Hirata1-1/+1
* alloc-pool.c: Fix comment typos. * builtin-types.def: Likewise. * builtins.def: Likewise. * c-pretty-print.c: Likewise. * df.h: Likewise. * reload1.c: Likewise. From-SVN: r77043
2003-07-01basic-block.h: Fix comment typos.Kazu Hirata1-1/+1
* basic-block.h: Fix comment typos. * bb-reorder.c: Likewise. * c-format.c: Likewise. * cfgcleanup.c: Likewise. * cfghooks.h: Likewise. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.h: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * dbxout.c: Likewise. * df.c: Likewise. * df.h: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * et-forest.h: Likewise. * flow.c: Likewise. * fold-const.c: Likewise. * function.h: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * ra-build.c: Likewise. * ra-colorize.c: Likewise. * ra-rewrite.c: Likewise. * ra.h: Likewise. * regmove.c: Likewise. * reload.c: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-vis.c: Likewise. * sreal.c: Likewise. * ssa-ccp.c: Likewise. * ssa.c: Likewise. * toplev.c: Likewise. * tree-inline.c: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. From-SVN: r68770
2003-06-29cse.c: Convert prototypes to ISO C90.Andreas Jaeger1-67/+57
* cse.c: Convert prototypes to ISO C90. * cselib.c: Likewise. * cselib.h: Likewise. * dbxout.c: Likewise. * debug.c: Likewise. * df.c: Likewise. * df.h: Likewise. * dojump.c: Likewise. * doloop.c: Likewise. * dominance.c: Likewise. * dwarf2asm.c: Likewise. * dwarf2out.c: Likewise. * dwarf2out.h: Likewise. * dwarfout.c: Likewise. From-SVN: r68673
2003-03-202003-03-20 Daniel Berlin <dberlin@dberlin.org>Daniel Berlin1-1/+6
Merge changes from new-regalloc-branch From Michael Matz <matz@suse.de> * df.c (df_ref_record_1): Move init of loc to safe point. Only recurse on interesting things in parallels. Handle CLASS_CANNOT_CHANGE_MODE smarter. (df_uses_record): Ditto. * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which it's already okay to use memory operands in (IE doesn't require adding another insn or anything). From-SVN: r64629
2003-03-11df.c (read_modify_subreg_p): Change from static to global.Hartmut Penner1-0/+1
* df.c (read_modify_subreg_p): Change from static to global. * df.h (read_modify_subreg_p): Add prototype. * sched-deps.c (sched_analyze_1): Generate true dependency for strict_low_part, certain subregs and zero/sign_extract. From-SVN: r64164
2003-03-07df.h (enum df_ref_flags.DF_REF_STRIPPED): New.Michael Matz1-3/+8
* df.h (enum df_ref_flags.DF_REF_STRIPPED): New. (DF_FOR_REGALLOC): New. * df.c (df_ref_record): Set DF_REF_STRIPPED. (read_modify_subreg_p): Simplify. (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often. Use DF_FOR_REGALLOC. * ra.h (struct web): New member subreg_stripped. (invalid_mode_change_regs): Declare. * ra.c (invalid_mode_change_regs): New. (init_ra): Initialize it. * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it. Use CANNOT_CHANGE_MODE_CLASS as ifdef guard. (reinit_one_web, parts_to_web_1): Deal with subreg_stripped. * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs. Use CANNOT_CHANGE_MODE_CLASS as ifdef guard. From-SVN: r63952
2003-01-26df.h: Update comments, tidy formatting.Michael Hayes1-42/+47
* df.h: Update comments, tidy formatting. (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD, REVERSE, UNION, INTERSECTION. All uses updated. (OLD_DF_INTERFACE): Remove. (struct insn_info): Remove commented out insn field. * df.c: Update comments, tidy formatting. (df_def_table_realloc): Remove. From-SVN: r61819
2003-01-18alias.c: Fix comment typos.Kazu Hirata1-2/+2
* alias.c: Fix comment typos. * basic-block.h: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * c-pragma.c: Likewise. * c-pretty-print.h: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgbuild.c: Likewise. * cfgcleanup.c: Likewise. * cfglayout.c: Likewise. * cfgrtl.c: Likewise. * convert.c: Likewise. * cpphash.h: Likewise. * cpplex.c: Likewise. * cpplib.h: Likewise. * df.h: Likewise. * diagnostic.c: Likewise. * diagnostic.h: Likewise. * dwarf2.h: Likewise. From-SVN: r61462
2002-07-15[multiple changes]Michael Matz1-2/+11
2002-07-15 Michael Matz <matz@suse.de>, Daniel Berlin <dberlin@dberlin.org>, Denis Chertykov <denisc@overta.ru> Add a new register allocator. * ra.c: New file. * ra.h: New file. * ra-build.c: New file. * ra-colorize.c: New file. * ra-debug.c: New file. * ra-rewrite.c: New file. * Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, (ra-rewrite.o): New .o files for libbackend.a. (GTFILES): Add basic-block.h. * toplev.c (flag_new_regalloc): New. (f_options): New option "new-ra". (rest_of_compilation): Call initialize_uninitialized_subregs() only for the old allocator. If flag_new_regalloc is set, call new allocator, instead of local_alloc(), global_alloc() and friends. * doc/invoke.texi: Document -fnew-ra. * basic-block.h (FOR_ALL_BB): New. * config/rs6000/rs6000.c (print_operand): Write small constants as @l+80. * df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg. (df_reg_table_realloc): Make size at least as large as max_reg_num(). (df_insn_table_realloc): Size argument now is absolute, not relative. Changed all callers. * gengtype.c (main): Add the pseudo-type "HARD_REG_SET". * regclass.c (reg_scan_mark_refs): Ignore NULL rtx's. 2002-06-20 Michael Matz <matz@suse.de> * df.h (struct ref.id): Make unsigned. * df.c (df_bb_reg_def_chain_create): Remove unsigned cast. 2002-06-13 Michael Matz <matz@suse.de> * df.h (DF_REF_MODE_CHANGE): New flag. * df.c (df_def_record_1, df_uses_record): Set this flag for refs involving subregs with invalid mode changes, when CLASS_CANNOT_CHANGE_MODE is defined. 2002-05-07 Michael Matz <matz@suse.de> * reload1.c (fixup_abnormal_edges): Don't insert on NULL edge. 2002-05-03 Michael Matz <matz@suse.de> * sbitmap.c (sbitmap_difference): Accept sbitmaps of different size. Sat Feb 2 18:58:07 2002 Denis Chertykov <denisc@overta.ru> * regclass.c (regclass): Work with all regs which have sets or refs. (reg_scan_mark_refs): Count regs inside (clobber ...). 2002-01-04 Michael Matz <matzmich@cs.tu-berlin.de> * df.c (df_ref_record): Correctly calculate SUBREGs of hardregs. (df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only add new refs. (df_bb_refs_update): Don't clear insns_modified here, ... (df_analyse): ... but here. * sbitmap.c (dump_sbitmap_file): New. (debug_sbitmap): Use it. * sbitmap.h (dump_sbitmap_file): Add prototype. 2001-08-07 Daniel Berlin <dan@cgsoftware.com> * df.c (df_insn_modify): Grow the UID table if necessary, rather than assume all emits go through df_insns_modify. 2001-07-26 Daniel Berlin <dan@cgsoftware.com> * regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS, increase REG_N_REFS (like flow does), so that regclass doesn't think a reg is useless, and thus, not calculate a class, when it really should have. 2001-01-28 Daniel Berlin <dberlin@redhat.com> * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for dataflow analysis. From-SVN: r55458
2002-05-16Revert "Basic block renumbering removal", and two followup patches.Richard Henderson1-2/+2
From-SVN: r53537
2002-05-16Basic block renumbering removal.Zdenek Dvorak1-2/+2
From-SVN: r53522
2002-01-25df.c (df_ref_create, [...]): Kill BB argument.Jan Hubicka1-3/+2
* df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB argument. * df.h (struct ref): Kill B. (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN. * basic-block.h (PROP_EQUAL_NOTES): New flag. * flow.c (propagate_one_insn): Use it. (mark_used_regs): Handle NIL. From-SVN: r49220
2001-11-26df.h (transfer_function_sbitmap): Use PARAMS around argument list in ↵Jeffrey A Law1-4/+4
function prototypes. * df.h (transfer_function_sbitmap): Use PARAMS around argument list in function prototypes. (transfer_function_bitmap): Likewise. From-SVN: r47350
2001-11-19gcse.c (try_replace_reg): Copy RTX before creating note.Jan Hubicka1-0/+6
* gcse.c (try_replace_reg): Copy RTX before creating note. * df.h (df_ref_flags): New uenum. (DF_REF_FLAGS): New macro. (struct ref): Add field "flags". * df.c (HANDLE_SUBREG): Remove. (df_ref_create): Likewise; set flags field of ref. (df_def_record_1): Strip down read_write subreg; remove commented out code; set READ_WRITE flag. (read_modify_subreg_p): New static function. (df_uses_record): Cleanup SET handling; set READ_WRITE flag; new argument "flags". (df_insn_refs_record): Update call of df_uses_record. (df_insn_modify): Avoid #if 0 around comment. (df_dump): Dump the read/write flag. * predict.c (propagate_freq): Make cyclic_probability and frequency volatile * i386.c (ix86_cc_mode): Accept USE. * cfgrtl.c (purge_dead_edges): Cleanup EDGE_ABNORMAL flag if computed jump is turned into simplejump. From-SVN: r47175
2001-11-07Makefile.in (df.o): Add fibheap.h to dependencies.Daniel Berlin1-6/+38
2001-11-07 Daniel Berlin <dan@cgsoftware.com> * Makefile.in (df.o): Add fibheap.h to dependencies. * df.h: Add prototypes for transfer functions, iterative_dataflow functions. (enum df_flow_dir): New enum. (enum df_confluence_op): New enum. (struct df): Add inverse_rts_map. * df.c: Add sbitmap.h to the list of includes. (df_rd_global_compute): Removed. (df_ru_global_compute): Removed. (df_lr_global_compute): Removed. (df_rd_transfer_function): New function. (df_ru_transfer_function): New function. (df_lr_transfer_function): New function. (df_analyse_1): allocate/compute/free df->inverse_rts_map. Use iterative_dataflow_bitmap instead of df_*_global_compute. (iterative_dataflow_sbitmap): New function. (iterative_dataflow_bitmap): New function. From-SVN: r46827
2001-10-30lcm.c (optimize_mode_switching): Do not rebuild liveness information when no ↵Jan Hubicka1-0/+1
changes has been made. * lcm.c (optimize_mode_switching): Do not rebuild liveness information when no changes has been made. * gcse.c (reg_set_bitmap): Turn into reg_set. (modify_mem_list_set, canon_modify_mem_list_set) (clear_modify_mem_tables, free_modify_mem_tables): New. (gcse_main); Use free_modify_mem_tables. (free_gcse_mem): Likewise; free the bitmaps. (alloc_gcse_main): Initialize the bitmaps. (canon_list_insert): Set canon_modify_mem_list_set. (record_last_mem_set_info): Likewise; set modify_mem_list_set. (compute_hash_table): Use clear_modify_mem_tables. (reset_opr_set_tables): Likewise. (oprs_not_set_p): reg_set_bitmap is regset. (mark_set, mark_clobber): Likewise. * df.h (DF_EQUIV_NOTES): New constant. (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes when asked for. * sched-rgn.c (CHECK_DEAD_NOTES): New constant. (init_regions, schedule_insns): Conditionalize the checking code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info. From-SVN: r46634
2001-10-28ChangeLog.0, [...]: Fix spelling errors.Joseph Myers1-1/+1
* ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS, c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c, collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h, haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c, regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c, system.h, toplev.c: Fix spelling errors. From-SVN: r46580
2001-08-28df.h (struct df): Add rts_order variable.Daniel Berlin1-0/+1
2001-08-28 Daniel Berlin <dan@cgsoftware.com> * df.h (struct df): Add rts_order variable. * df.c (df_visit_next_rts): New function. (df_visit_next): Renamed to df_visit_next_rc (df_analyse_1): Allocate/compute/free rts_order as well. (df_rd_global_compute): Use df_visit_next_rc instead of df_visit_next. (df_ru_global_compute): Use df_visit_next_rts instead of df_visit_next. * flow.c (flow_reverse_top_sort_order_compute): New function. * basic-block.h: Add prototype. From-SVN: r45246
2001-08-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-12/+12
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, bitmap.h, builtin-types.def, builtins.c, builtins.def, c-aux-info.c, c-common.c, c-common.def, c-common.h, c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, caller-save.c, calls.c, collect2.c, collect2.h, combine.c, conditions.h, config.gcc, configure.frag, configure.in, conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, emit-rtl.c, errors.c, errors.h, except.c, except.h, exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, fixproto, flags.h, flow.c, fold-const.c, fp-test.c, function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, gencheck.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c, genmultilib, genopinit.c, genoutput.c, genpeep.c, genrecog.c, gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h, gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h, hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, mkmap-symver.awk, optabs.c, output.h, params.c, params.def, params.h, predict.c, predict.def, predict.h, prefix.c, prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, regclass.c, regmove.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, stringpool.c, system.h, timevar.c, timevar.def, timevar.h, tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, xcoffout.h: replace "GNU CC" with "GCC". From-SVN: r45105