1. 25 Nov, 2009 1 commit
    • Remove trailing white spaces. · b8698a0f
      2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c: Remove trailing white spaces.
      	* alloc-pool.c: Likewise.
      	* alloc-pool.h: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.def: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-format.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-typeck.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cif-code.def: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbgcnt.def: Likewise.
      	* dbgcnt.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* ddg.h: Likewise.
      	* defaults.h: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* df.h: Likewise.
      	* dfp.c: Likewise.
      	* diagnostic.c: Likewise.
      	* diagnostic.h: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* double-int.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2asm.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* ebitmap.c: Likewise.
      	* ebitmap.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* flags.h: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcov-dump.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genchecksum.c: Likewise.
      	* genconfig.c: Likewise.
      	* genflags.c: Likewise.
      	* gengtype-parse.c: Likewise.
      	* gengtype.c: Likewise.
      	* gengtype.h: Likewise.
      	* genmddeps.c: Likewise.
      	* genmodes.c: Likewise.
      	* genopinit.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.def: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graphds.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* gthr-nks.h: Likewise.
      	* gthr-posix.c: Likewise.
      	* gthr-posix.h: Likewise.
      	* gthr-posix95.h: Likewise.
      	* gthr-single.h: Likewise.
      	* gthr-tpf.h: Likewise.
      	* gthr-vxworks.h: Likewise.
      	* gthr.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* hooks.c: Likewise.
      	* hooks.h: Likewise.
      	* hosthooks.h: Likewise.
      	* hwint.h: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* lambda-code.c: Likewise.
      	* lambda-mat.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* lambda.h: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* libgcov.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-wpa-fixup.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omega.h: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts-common.c: Likewise.
      	* opts.c: Likewise.
      	* params.def: Likewise.
      	* params.h: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* predict.def: Likewise.
      	* pretty-print.c: Likewise.
      	* pretty-print.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sbitmap.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-int.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-dump.h: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sel-sched.h: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* stub-objc.c: Likewise.
      	* sync-builtins.def: Likewise.
      	* target-def.h: Likewise.
      	* target.h: Likewise.
      	* targhooks.c: Likewise.
      	* targhooks.h: Likewise.
      	* timevar.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* toplev.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-affine.h: Likewise.
      	* tree-browser.def: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-dump.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-operands.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* treestruct.def: Likewise.
      	* unwind-compat.c: Likewise.
      	* unwind-dw2-fde-glibc.c: Likewise.
      	* unwind-dw2.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vec.c: Likewise.
      	* vec.h: Likewise.
      	* vmsdbgout.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r154645
      H.J. Lu committed
  2. 20 Feb, 2009 1 commit
  3. 01 Sep, 2008 1 commit
    • sel-sched.h, [...]: New files. · e855c69d
      2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
              Dmitry Melnik  <dm@ispras.ru>
              Dmitry Zhurikhin  <zhur@ispras.ru>
              Alexander Monakov  <amonakov@ispras.ru>
              Maxim Kuvyrkov  <maxim@codesourcery.com>
      
      	* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
      	sel-sched-dump.c, sel-sched-ir.c: New files.
      	* Makefile.in (OBJS-common): Add selective scheduling object
      	files.
      	(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
      	(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
      	(sched-vis.o): Add dependency on $(INSN_ATTR_H).
      	* cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
      	* cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
      	(make_forwarder_block): Update loop latch if we have redirected
      	the loop latch edge.
      	* cfgloop.c (get_loop_body_in_custom_order): New function.
      	* cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
      	(CP_FALLTHRU_PREHEADERS): Likewise.
      	(get_loop_body_in_custom_order): Declare.
      	* cfgloopmanip.c (has_preds_from_loop): New.
      	(create_preheader): Honor CP_FALLTHRU_PREHEADERS.
      	Assert that the preheader edge will be fall thru when it is set.
      	* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
      	fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
      	fsel-sched-substitution, fselective-scheduling): New flags.
          	* cse.c (hash_rtx_cb): New.
      	(hash_rtx): Use it.
      	* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
      	sel_sched_insn_cnt): New counters. 
      	* final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
      	* genattr.c (main): Output maximal_insn_latency prototype.
      	* genautomata.c (output_default_latencies): New. Factor its code from ...
      	(output_internal_insn_latency_func): ... here.
      	(output_internal_maximal_insn_latency_func): New.
      	(output_maximal_insn_latency_func): New.
      	* hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
      	(struct hard_reg_set_iterator): New.
      	(hard_reg_set_iter_init, hard_reg_set_iter_set,
      	hard_reg_set_iter_next): New functions.
      	(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
      	* lists.c (remove_free_INSN_LIST_node,
      	remove_free_EXPR_LIST_node): New functions.
      	* loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
      	set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
      	(loop_optimizer_finalize): Do not verify flow info after reload.
      	* recog.c (validate_replace_rtx_1): New parameter simplify.
      	Default it to true.  Update all uses.  Factor out simplifying
      	code to ...
      	(simplify_while_replacing): ... this new function.
      	(validate_replace_rtx_part,
      	validate_replace_rtx_part_nosimplify): New.
      	* recog.h (validate_replace_rtx_part,
      	validate_replace_rtx_part_nosimplify): Declare.
      	* rtl.c (rtx_equal_p_cb): New.
      	(rtx_equal_p): Use it.
      	* rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
      	(remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
      	debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
      	* vecprim.h: Add a vector type for unsigned int. 
      	* haifa-sched.c: Include vecprim.h and cfgloop.h.
      	(issue_rate, sched_verbose_param, note_list, dfa_state_size,
      	ready_try, cycle_issued_insns, spec_info): Make global.
      	(readyp): Initialize.
      	(dfa_lookahead): New global variable.
      	(old_max_uid, old_last_basic_block): Remove.
      	(h_i_d): Make it a vector.
      	(INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
      	through HID macro.
      	(after_recovery, adding_bb_to_current_region_p):
      	New variables to handle correct insertion of the recovery code.
      	(struct ready_list): Move declaration to sched-int.h.
      	(rgn_n_insns): Removed.
      	(rtx_vec_t): Move to sched-int.h.
      	(find_insn_reg_weight): Remove.
      	(find_insn_reg_weight1): Rename to find_insn_reg_weight.
      	(haifa_init_h_i_d, haifa_finish_h_i_d):
      	New functions to initialize / finalize haifa instruction data.
      	(extend_h_i_d, init_h_i_d): Rewrite.
      	(unlink_other_notes): Move logic to add_to_note_list.  Handle
      	selective scheduler.
      	(ready_lastpos, ready_element, ready_sort, reemit_notes,
      	find_fallthru_edge): Make global, remove static prototypes.
      	(max_issue): Make global.  Add privileged_n and state parameters.  Use
      	them.  
      	(extend_global, extend_all): Removed.
      	(init_before_recovery): Add new param.  Fix the handling of the case
      	when we insert a recovery code before the EXIT which has a predecessor
      	with a fallthrough edge to it.
      	(create_recovery_block): Make global.  Rename to
      	sched_create_recovery_block.  Update.
      	(change_pattern): Rename to sched_change_pattern.  Make global.
      	(speculate_insn): Rename to sched_speculate_insn.  Make global.
      	Split haifa-specific functionality into ...
      	(haifa_change_pattern): New static function.
      	(sched_extend_bb): New static function.
      	(sched_init_bbs): New function.
      	(current_sched_info): Change type to struct haifa_sched_info.
      	(insn_cost): Adjust for selective scheduling.
      	(dep_cost_1): New function.  Move logic from ...
      	(dep_cost): ... here.
      	(dep_cost): Use dep_cost_1.
      	(contributes_to_priority_p): Use sched_deps_info instead of
      	current_sched_info.
      	(priority): Adjust to work with selective scheduling.  Process the
      	corner case when all dependencies don't contribute to priority.
      	(rank_for_schedule): Use ds_weak instead of dep_weak.
      	(advance_state): New function.  Move logic from ...
      	(advance_one_cycle): ... here.
      	(add_to_note_list, concat_note_lists): New functions.
      	(rm_other_notes): Make static.  Adjust for selective scheduling.
      	(remove_notes, restore_other_notes): New functions.
      	(move_insn): Add two arguments.  Update assert.  Don't call
      	reemit_notes.
      	(choose_ready): Remove lookahead variable, use dfa_lookahead.
      	Remove more_issue, max_points.  Move the code to initialize
      	max_lookahead_tries to max_issue.
      	(schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
      	ready.  Adjust use of move_insn.  Call restore_other_notes.
      	(luid): Remove.
      	(sched_init, sched_finish): Move Haifa-specific initialization/
      	finalization to ...
      	(haifa_sched_init, haifa_sched_finish): ... respectively.
      	New functions.
      	(setup_sched_dump): New function.
      	(haifa_init_only_bb): New static function.
      	(haifa_speculate_insn): New static function.
      	(try_ready): Use haifa_* instead of speculate_insn and
      	change_pattern.
      	(extend_ready, extend_all): Remove.
      	(sched_extend_ready_list, sched_finish_ready_list): New functions.
      	(create_check_block_twin, add_to_speculative_block): Use
      	haifa_insns_init instead of extend_global.  Update to use new
      	initialization functions.  Change parameter.  Factor out code from
      	create_check_block_twin to ...
      	(sched_create_recovery_edges) ... this new function.
      	(add_block): Remove.
      	(sched_scan_info): New.
      	(extend_bb): Use sched_scan_info.
      	(init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
      	static functions for walking through scheduling region.
      	(sched_luids): New vector variable to replace uid_to_luid.
      	(luids_extend_insn): New function.
      	(sched_max_luid): New variable.
      	(luids_init_insn): New function.
      	(sched_init_luids, sched_finish_luids): New functions.
      	(insn_luid): New debug function.
      	(sched_extend_target): New function.
      	(haifa_init_insn): New static function.
      	(sched_init_only_bb): New hook.
      	(sched_split_block): New hook.
      	(sched_split_block_1): New function.
      	(sched_create_empty_bb): New hook.
      	(sched_create_empty_bb_1): New function.	
      	(common_sched_info, ready): New global variables.
      	(current_sched_info_var): Remove.
      	(move_block_after_check): Use common_sched_info.		
      	(haifa_luid_for_non_insn): New static function.	
      	(init_before_recovery): Use haifa_init_only_bb instead of
      	add_block.
      	(increase_insn_priority): New.
      	* modulo-sched.c: (issue_rate): Remove static declaration.
      	(sms_sched_info): Change type to haifa_sched_info.
      	(sms_sched_deps_info, sms_common_sched_info): New variables.
      	(setup_sched_infos): New.
      	(sms_schedule): Initialize them.  Call haifa_sched_init/finish.
      	Do not call regstat_free_calls_crossed.
      	(sms_print_insn): Use const_rtx.
      	* params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
      	PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
      	PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
      	PARAM_SCHED_MEM_TRUE_DEP_COST): New.
      	* sched-deps.c (sched_deps_info): New.  Update all relevant uses of
      	current_sched_info to use it.
      	(enum reg_pending_barrier_mode): Move to sched-int.h.
      	(h_d_i_d): New variable. Initialize to NULL.
      	({true, output, anti, spec, forward}_dependency_cache): Initialize
      	to NULL.
      	(estimate_dep_weak): Remove static declaration.
      	(sched_has_condition_p): New function.  Adjust users of
      	sched_get_condition to use it instead.
      	(conditions_mutex_p): Add arguments indicating which conditions are
      	reversed.  Use them.
      	(sched_get_condition_with_rev): Rename from sched_get_condition.  Add
      	argument to indicate whether returned condition is reversed.  Do not
      	generate new rtx when condition should be reversed; indicate it by
      	setting new argument instead.
      	(add_dependence_list_and_free): Add deps parameter.
      	Update all users.  Do not free dependence list when
      	deps context is readonly.
      	(add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
      	contexts.
      	(remove_from_dependence_list, remove_from_both_dependence_lists): New.
      	(remove_from_deps): New. Use the above functions.	
      	(cur_insn, can_start_lhs_rhs_p): New static variables.
      	(add_or_update_back_dep_1): Initialize present_dep_type.
      	(haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
      	haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
      	haifa_note_dep): New functions implementing dependence hooks for
      	the Haifa scheduler.
      	(note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
      	note_dep): New functions.
      	(ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
      	functions.
      	(init_deps): Initialize last_reg_pending_barrier and deps->readonly.
      	(free_deps): Initialize deps->reg_last.
      	(sched_analyze_reg, sched_analyze_1, sched_analyze_2,
      	sched_analyze_insn): Update to use dependency hooks infrastructure
      	and readonly contexts.
      	(deps_analyze_insn): New function.  Move part of logic from ...
      	(sched_analyze): ... here.  Also move some logic to ...
      	(deps_start_bb): ... here.  New function.
      	(add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
      	sel_sched_p.
      	(sched_deps_init): New function.  Move code from ...
      	(init_dependency_caches): ... here.  Remove.
      	(init_deps_data_vector): New.
      	(sched_deps_finish): New function.  Move code from ...
      	(free_dependency_caches): ... here.  Remove.
      	(init_deps_global, finish_deps_global): Adjust for use with
      	selective scheduling.
      	(get_dep_weak): Move logic to ...
      	(get_dep_weak_1): New function.
      	(ds_merge): Move logic to ...
      	(ds_merge_1): New static function.
      	(ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
      	(ds_get_max_dep_weak): New function.
      	* sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
      	(n_insns): Rename to rgn_n_insns.
      	(debug_ebb_dependencies): New function.
      	(init_ready_list): Use it.
      	(begin_schedule_ready): Use sched_init_only_bb.
      	(ebb_print_insn): Indicate when an insn starts a new cycle.
      	(contributes_to_priority, compute_jump_reg_dependencies,
      	add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
      	(add_block1): Remove to ebb_add_block.
      	(ebb_sched_deps_info, ebb_common_sched_info): New variables.
      	(schedule_ebb): Initialize them.  Use remove_notes instead of
      	rm_other_notes.  Use haifa_local_init/finish.
      	(schedule_ebbs): Use haifa_sched_init/finish.
      	* sched-int.h: Include vecprim.h, remove rtl.h.
      	(struct ready_list): Delete declaration.
      	(sched_verbose_param, enum sched_pass_id_t,
      	bb_vec_t, insn_vec_t, rtx_vec_t): New.
      	(struct sched_scan_info_def): New structure.
      	(sched_scan_info, sched_scan, sched_init_bbs,
      	sched_init_luids, sched_finish_luids, sched_extend_target,
      	haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
      	(struct common_sched_info_def): New.
      	(common_sched_info, haifa_common_sched_info,
      	sched_emulate_haifa_p): Declare.
      	(sel_sched_p): New.
      	(sched_luids): Declare.
      	(INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
      	(sched_max_luid, insn_luid): Declare.
      	(note_list, remove_notes, restore_other_notes, bb_note): Declare.
      	(sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
      	print_insn, print_pattern, print_value, haifa_classify_insn,
      	sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
      	setup_sched_dump, sched_init, sched_finish,
      	sel_insn_is_speculation_check): Export.
      	(struct ready_list): Move from haifa-sched.c.
      	(ready_try, ready, max_issue): Export.
      	(ebb_compute_jump_reg_dependencies, find_fallthru_edge,
      	sched_init_only_bb, sched_split_block, sched_split_block_1,
      	sched_create_empty_bb, sched_create_empty_bb_1,
      	sched_create_recovery_block, sched_create_recovery_edges): Export.
      	(enum reg_pending_barrier_mode): Export.
      	(struct deps): New fields `last_reg_pending_barrier' and `readonly'.
      	(deps_t): New.
      	(struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
      	print_insn field.  Move add_block and fix_recovery_cfg to
      	common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
      	(struct sched_deps_info_def): ... this new structure.
      	(sched_deps_info): Declare.
      	(struct spec_info_def): Remove weakness_cutoff, add
      	data_weakness_cutoff and control_weakness_cutoff.
      	(spec_info): Declare.
      	(struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
      	dep_count field.
      	(struct haifa_insn_data): Rename to struct _haifa_insn_data.
      	(haifa_insn_data_def, haifa_insn_data_t): New typedefs.
      	(current_sched_info): Change type to struct haifa_sched_info.
      	(haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
      	(h_d_i_d): New variable.
      	(HDID): New accessor macro.
      	(h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
      	(HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
      	and HDID.
      	(IS_SPECULATION_CHECK_P): Update for selective scheduler.
      	(enum SCHED_FLAGS): Update for selective scheduler.
      	(enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
      	(init_dependency_caches, free_dependency_caches): Delete declarations.
      	(deps_analyze_insn, remove_from_deps, get_dep_weak_1,
      	estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
      	ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
      	sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
      	haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
      	ds_to_dt): Export.
      	(rm_other_notes): Delete declaration.
      	(schedule_block): Remove one argument.
      	(cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
      	ready_element, ready_lastpos, sched_extend_ready_list,
      	sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
      	concat_note_lists): Export.
      	(struct region): Move from sched-rgn.h.
      	(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
      	RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
      	BLOCK_TO_BB, CONTAINING_RGN): Export.
      	(ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
      	(current_nr_blocks, current_blocks, target_bb): Likewise.
      	(dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
      	sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
      	sched_rgn_local_init, extend_regions,
      	rgn_make_new_region_out_of_new_block, compute_priorities,
      	debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
      	extend_rgns, deps_join rgn_setup_common_sched_info,
      	rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
      	dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
      	(get_rgn_sched_max_insns_priority, sel_add_to_insn_priority, 
      	increase_insn_priority): Likewise.
      	* sched-rgn.c: Include sel-sched.h.
      	(ref_counts): New static variable.  Use it ...
      	(INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
      	(FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
      	(sched_is_disabled_for_current_region_p): Delete static declaration.
      	(struct region): Move to sched-int.h.
      	(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
      	ebb_head): Define and initialize.
      	(RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
      	BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
      	BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
      	sched-int.h.
      	(find_single_block_region): Add new argument to indicate that EBB
      	regions should be constructed.
      	(debug_live): Delete declaration.
      	(current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
      	(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
      	declaration.
      	(init_regions): Delete declaration.
      	(debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
      	rgn_estimate_number_of_insns): New.
      	(too_large): Use estimate_number_of_insns.
      	(haifa_find_rgns): New. Move the code from ...
      	(find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
      	(free_trg_info): New.
      	(compute_trg_info): Allocate candidate tables here instead of ...
      	(init_ready_list): ... here.
      	(rgn_print_insn): Use const_rtx.
      	(contributes_to_priority, extend_regions): Delete static declaration.
      	(add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
      	(add_block1): Rename to rgn_add_block.
      	(debug_rgn_dependencies): Delete static qualifier.
      	(new_ready): Use sched_deps_info.  Simplify.
      	(rgn_common_sched_info, rgn_const_sched_deps_info,
      	rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
      	(region_sched_info): Rename to rgn_const_sched_info.
      	(deps_join): New, extracted from ...
      	(propagate_deps): ... here.
      	(compute_block_dependences, debug_dependencies): Update for selective
      	scheduling.
      	(free_rgn_deps, compute_priorities): New functions.
      	(sched_rgn_init, sched_rgn_finish, rgn_setup_region,
      	sched_rgn_compute_dependencies): New functions.
      	(schedule_region): Use them.
      	(sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
      	rgn_setup_common_sched_info, rgn_setup_sched_infos):
      	New functions.
      	(schedule_insns): Call new functions that were split out.
      	(rgn_make_new_region_out_of_new_block): New.
      	(get_rgn_sched_max_insns_priority): New.
      	(rest_of_handle_sched, rest_of_handle_sched2): Call selective
      	scheduling when appropriate.
      	* sched-vis.c: Include insn-attr.h.
      	(print_value, print_pattern): Make global.
      	(print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
      	* target-def.h (TARGET_SCHED_ADJUST_COST_2,
      	TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
      	TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
      	TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
      	TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
      	hooks.  Initialize them to 0.
      	(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
      	* target.h (struct gcc_target): Add them.  Rename gen_check field to
      	gen_spec_check.
      	* flags.h (sel_sched_switch_set): Declare.
      	* opts.c (sel_sched_switch_set): New variable.
      	(decode_options): Unset flag_sel_sched_pipelining_outer_loops if
      	pipelining is disabled from command line.
      	(common_handle_option): Record whether selective scheduling is
      	requested from command line.
      	* doc/invoke.texi: Document new flags and parameters.
      	* doc/tm.texi: Document new target hooks.
      	* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
      	(dfa_state_size): Do not declare locally.
      	* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
      	* config/rs6000/rs6000.c (rs6000_init_sched_context,
      	rs6000_alloc_sched_context, rs6000_set_sched_context,
      	rs6000_free_sched_context): New functions.
      	(struct _rs6000_sched_context): New.
      	(rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
      	scheduling.
      	(rs6000_sched_finish): Do not run for selective scheduling. 
      
      Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>
      Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
      Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru>
      Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
      
      From-SVN: r139854
      Andrey Belevantsev committed
  4. 28 Jul, 2008 1 commit
    • backport: ChangeLog.tuples: ChangeLog from gimple-tuples-branch. · 726a989a
      2008-07-28  Richard Guenther  <rguenther@suse.de>
      
      	Merge from gimple-tuples-branch.
      
      	* ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
      	* gimple.def: New file.
      	* gsstruct.def: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* tree-gimple.c: Removed.  Merged into ...
      	* gimple.c: ... here.  New file.
      	* tree-gimple.h: Removed.  Merged into ...
      	* gimple.h: ... here.  New file.
      
      	* Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
      	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
      	--enable-checking=gimple flag.
      	* config.in: Likewise.
      	* configure: Regenerated.
      
      	* tree-ssa-operands.h: Tuplified.
      	* tree-vrp.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-complex.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tracer.c: Likewise.
      	* gengtype.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* value-prof.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* value-prof.h: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* tree-pass.h: Likewise.
      	* ipa-cp.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-scalar-evolution.h: Likewise.
      	* target.h: Likewise.
      	* lambda-mat.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* diagnostic.h: Likewise.
      	* builtins.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* cfghooks.c: Likewise.
      	* fold-const.c: Likewise.
      	* cfghooks.h: Likewise.
      	* omp-low.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* toplev.c: Likewise.
      	* tree-gimple.c: Likewise.
      	* tree-gimple.h: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* cgraphunit.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* c-format.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* tree-ssa-propagate.h: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* gimple-low.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* c-semantics.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* expr.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* predict.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* c-decl.c: Likewise.
      	* tree-eh.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* function.c: Likewise.
      	* langhooks.c: Likewise.
      	* ebitmap.h: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* function.h: Likewise.
      	* langhooks.h: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* domwalk.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* profile.c: Likewise.
      	* domwalk.h: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* c-typeck.c: Likewise.
      	* gimplify.c: Likewise.
      	* coretypes.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* calls.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree.def: Likewise.
      	* tree-dfa.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* cfgexpand.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-predcom.c: Likewise.
      	* lambda.h: Likewise.
      	* tree-mudflap.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* print-tree.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* ggc-page.c: Likewise.
      	* c-omp.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* lambda-code.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* cfgloop.c: Likewise.
      	* system.h: Likewise.
      	* tree-profile.c: Likewise.
      	* cfgloop.h: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-common.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-flow.h: Likewise.
      	* c-common.h: Likewise.
      	* basic-block.h: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-ssa-structalias.h: Likewise.
      	* tree-cfg.c: Likewise.
      	* passes.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* varpool.c: Likewise.
      	* stmt.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* langhooks-def.h: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32c/m32c-protos.h: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/mips/mips.c: Likewise.
      
      From-SVN: r138207
      Richard Biener committed
  5. 07 Sep, 2007 1 commit
  6. 27 Aug, 2007 1 commit
    • alias.c (memory_modified_1, [...]): Constify. · 9678086d
      	* alias.c (memory_modified_1, memory_modified_in_insn_p):
      	Constify.
      	* basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
      	Likewise.
      	* bb-reorder.c (copy_bb_p): Likewise.
      	* cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
      	predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
      	block_ends_with_condjump_p): Likewise.
      	* cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
      	predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
      	block_ends_with_condjump_p): Likewise.
      	* cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
      	* cfgrtl.c (can_delete_note_p, can_delete_label_p,
      	rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
      	rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
      	need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
      	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
      	debug_true_const_tree instad of debug_true_tree.
      	* debug.c (do_nothing_debug_hooks): Likewise.
      	* debug.h (ignore_block, debug_true_const_tree): Constify.
      	* dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
      	dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
      	decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
      	same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
      	dbx_reg_number, is_based_loc, field_type,
      	simple_type_align_in_bits, simple_decl_align_in_bits,
      	simple_type_size_in_bits, field_byte_offset, insert_float,
      	type_tag, member_declared_type, is_redundant_typedef,
      	secname_for_decl, is_inlined_entry_point): Likewise.
      	* emit-rtl.c (const_next_insn, const_previous_insn,
      	const_next_nonnote_insn, const_prev_nonnote_insn,
      	const_next_real_insn, const_prev_real_insn,
      	const_next_active_insn, const_prev_active_insn, const_next_label,
      	const_prev_label): Likewise.
      	* except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
      	Likewise.
      	* haifa-sched.c (may_trap_exp, haifa_classify_insn,
      	find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
      	sched_insn_is_legitimate_for_speculation_p): Likewise.
      	* jump.c (reversed_comparison_code_parts,
      	reversed_comparison_code, reversed_comparison, condjump_label):
      	Likewise.
      	* predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
      	* reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
      	Likewise.
      	* rtl.h (const_previous_insn, const_next_insn,
      	const_prev_nonnote_insn, const_next_nonnote_insn,
      	const_prev_real_insn, const_next_real_insn,
      	const_prev_active_insn, const_next_active_insn, const_prev_label,
      	const_next_label, modified_between_p, modified_in_p,
      	const_note_storeskeep_with_call_p, condjump_label,
      	reversed_comparison, reversed_comparison_code,
      	reversed_comparison_code_parts, memory_modified_in_insn_p,
      	stack_regs_mentioned): Likewise.
      	* rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
      	keep_with_call_p): Likewise.
      	* sched-deps.c (deps_may_trap_p, sched_get_condition,
      	conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
      	sd_lists_size, sd_lists_empty_p): Likewise.
      	* sched-int.h (sched_insns_conditions_mutex_p,
      	haifa_classify_insn, no_real_insns_p,
      	sched_insn_is_legitimate_for_speculation_p, sd_next_list,
      	sd_lists_size, sd_lists_empty_p): Likewise.
      	* sdbout.c (sdb_debug_hooks): Likewise.
      	* tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
      	stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
      	-tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
      	Likewise.
      	* tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
      	tree_can_throw_internal): Likewise.
      	* tree-flow-inline.h (phi_nodes): Likewise.
      	* tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
      	tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
      	* tree-gimple.c (const_get_call_expr_in): Likewise.
      	* tree-gimple.h (const_get_call_expr_in): Likewise.
      	* tree.c (const_lookup_attribute, attribute_list_equal,
      	attribute_list_contained): Likewise.
      	* tree.h (attribute_list_equal, attribute_list_contained,
      	const_lookup_attribute): Likewise.
      	* vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
      
      From-SVN: r127824
      Kaveh R. Ghazi committed
  7. 26 Jul, 2007 1 commit
  8. 09 Jul, 2007 1 commit
    • cfghooks.c (remove_edge): New function. · 452ba14d
      	* cfghooks.c (remove_edge): New function.
      	(redirect_edge_and_branch, remove_branch, merge_blocks): Updated
      	loop exit rescans.
      	* cfghooks.h (remove_edge): Declare.
      	* cfg.c (remove_edge): Renamed to remove_edge_raw.
      	* basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
      
      From-SVN: r126499
      Zdenek Dvorak committed
  9. 11 Jun, 2007 1 commit
  10. 04 Feb, 2007 1 commit
    • cfgloopmanip.c (loop_delete_branch_edge): Removed. · 14fa2cc0
      	* cfgloopmanip.c (loop_delete_branch_edge): Removed.
      	(remove_path): Use can_remove_branch_p and remove_branch instead
      	of loop_delete_branch_edge.
      	* tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
      	(tree_transform_and_unroll_loop): Remove dead branches immediately.
      	Update profile using scale_dominated_blocks_in_loop.
      	* cfghooks.c (can_remove_branch_p, remove_branch): New functions.
      	* cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
      	(can_remove_branch_p, remove_branch): Declare.
      	* tree-cfg.c (tree_can_remove_branch_p): New function.
      	(tree_cfg_hooks): Add tree_can_remove_branch_p.
      	* cfgrtl.c (rtl_can_remove_branch_p): New function.
      	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
      
      From-SVN: r121583
      Zdenek Dvorak committed
  11. 20 Dec, 2006 1 commit
    • loop-unswitch.c (unswitch_loop): Update arguments of duplicate_loop_to_header_edge call. · ee8c1b05
      	* loop-unswitch.c (unswitch_loop): Update arguments of
      	duplicate_loop_to_header_edge call.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Ditto.
      	* loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
      	unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
      	Ditto.
      	* cfgloopmanip.c (loop_version): Ditto.
      	(duplicate_loop_to_header_edge): Change
      	type of to_remove to VEC(edge), remove n_to_remove argument.
      	* tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge):
      	Change type of to_remove to VEC(edge), remove n_to_remove argument.
      	(tree_unroll_loop): Update arguments of
      	tree_duplicate_loop_to_header_edge call.
      	* cfghooks.c (cfg_hook_duplicate_loop_to_header_edge):
      	Change type of to_remove to VEC(edge), remove n_to_remove argument.
      	* cfghooks.h (struct cfg_hooks): Type of
      	cfg_hook_duplicate_loop_to_header_edge changed.
      	(cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
      	* cfgloop.h (duplicate_loop_to_header_edge): Ditto.
      	* tree-flow.h (tree_duplicate_loop_to_header_edge): Ditto.
      
      From-SVN: r120074
      Zdenek Dvorak committed
  12. 25 Nov, 2006 1 commit
    • tree-vrp.c (execute_vrp): Do not pass loops structure through arguments. · d73be268
      	* tree-vrp.c (execute_vrp): Do not pass loops structure through
      	arguments.
      	* loop-unswitch.c (unswitch_loops, unswitch_single_loop,
      	unswitch_loop): Ditto.
      	* tree-loop-linear.c (linear_transform_loops): Ditto.
      	* tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
      	tree_ssa_lim): Ditto.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
      	free_numbers_of_iterations_estimates): Ditto.
      	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
      	tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
      	* cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
      	remove_path, add_loop, loopify, unloop, fix_loop_placements,
      	place_new_loop, duplicate_loop, duplicate_subloops,
      	update_single_exit_for_duplicated_loops, copy_loops_to,
      	duplicate_loop_to_header_edge, create_preheaders,
      	force_single_succ_latches, loop_version, fix_loop_structure):
      	Ditto.
      	* tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
      	tree_unroll_loop): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-scalar-evolution.c (select_loops_exit_conditions,
      	scev_initialize, scev_analysis): Ditto.
      	* tree-scalar-evolution.h (scev_initialize): Ditto.
      	* cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
      	* cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
      	* loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
      	rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
      	* ifcvt.c (if_convert): Ditto.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
      	canonicalize_loop_induction_variables,
      	canonicalize_induction_variables,
      	tree_unroll_loops_completely, remove_empty_loops): Ditto.
      	* tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
      	tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
      	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
      	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
      	tree_ssa_loop_done): Ditto.
      	* predict.c (predict_loops, tree_estimate_probability, estimate_loops,
      	estimate_bb_frequencies): Ditto.
      	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
      	slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
      	decide_unrolling_and_peeling, peel_loop_completely,
      	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
      	peel_loop_simple, unroll_loop_stupid): Ditto.
      	* loop-doloop.c (doloop_optimize_loops): Ditto.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
      	* loop-invariant.c (move_loop_invariants): Ditto.
      	* tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
      	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
      	tree_ssa_prefetch_arrays): Ditto.
      	* lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
      	Ditto.
      	* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
      	vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
      	* cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
      	mark_single_exit_loops, cancel_loop, cancel_loop_tree,
      	verify_loop_structure): Ditto.
      	* tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
      	canonicalize_induction_variables, tree_unroll_loops_completely,
      	tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
      	estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
      	tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
      	tree_unroll_loop, linear_transform_loops): Declaration changed.
      	* basic-block.h: Remove declaration of struct loops.
      	* cfghooks.h (struct cfg_hooks): Change type of
      	cfg_hook_duplicate_loop_to_header_edge.
      	(cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
      	* tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
      	vect_transform_loop): Declaration changed.
      	* lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
      	* cfgloop.h (flow_loops_dump, fix_loop_structure,
      	mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
      	cancel_loop_tree, create_preheaders, force_single_succ_latches,
      	verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
      	loopify, loop_version, remove_path, unswitch_loops,
      	unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
      	Declaration changed.
      
      From-SVN: r119189
      Zdenek Dvorak committed
  13. 03 Nov, 2006 1 commit
    • tree-dump.c (dump_enable_all): Rename local variable ir_type to avoid name conflicts. · 52bca999
      	* tree-dump.c (dump_enable_all): Rename local variable
      	ir_type to avoid name conflicts.
      	* cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
      	instead of using ir_type().
      	* profile.c (tree_register_profile_hooks): Likewise.
      	* value-prof.c (tree_register_value_prof_hooks): Likewise.
      	* basic-block.h (struct edge_def): Likewise.
      	* config/arm/arm.c (legitimize_pic_address): Likewise.
      	* coretypes.h (ir_type): New enum of all intermediate languages
      	used in GCC.
      	* cfghooks.c (ir_type): Rename to...
      	(current_ir_type): ...this.  Distinguish between cfgrtl and
      	cfglayout mode when the current IR is RTL.  Return enum ir_type.
      	* cfghooks.h (ir_type): Replace with current_ir_type prototype.
      
      From-SVN: r118465
      Steven Bosscher committed
  14. 18 May, 2006 1 commit
  15. 24 Aug, 2005 1 commit
    • bb-reorder.c (copy_bb, [...]): Add argument to duplicate_block. · b9a66240
      	* bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
      	to duplicate_block.
      	* cfghooks.c (duplicate_block): Added position where to place
      	new block as argument.
      	* cfghooks.h (duplicate_block): Declaration changed.
      	* cfglayout.c (copy_bbs): Add argument after.  Pass it to
      	duplicate_block.
      	* cfglayout.h (copy_bbs): Declaration changed.
      	* cfgloop.h (loop_version): Declaration changed.
      	* cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
      	position to copy_bbs.
      	(loop_version): Pass position to duplicate_loop_to_header_edge.
      	Add place_after argument and position new blocks according to
      	it.
      	* modulo-sched.c (sms_schedule): Pass place_after argument
      	to loop_version.
      	* tracer.c (tail_duplicate): Pass argument to duplicate_block.
      	* tree-cfg.c (split_edge_bb_loc): New function.
      	(tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
      	to determine position of new blocks.
      	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
      	to loop_version.
      	* tree-ssa-threadupdate.c (create_block_for_threading): Pass
      	argument to duplicate_block.
      	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
      	Pass position to copy_bbs.
      
      From-SVN: r103437
      Zdenek Dvorak committed
  16. 25 Jun, 2005 1 commit
  17. 26 May, 2005 1 commit
    • c-common.c, [...]: Fix comment typos. · 0fa2e4df
      	* c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
      	cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
      	ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
      	tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
      	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
      	tree-ssa-operands.c, tree-vect-analyze.c,
      	tree-vect-transform.c, tree-vectorizer.c, tree.c,
      	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
      	config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
      	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
      	config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
      	config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
      	config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
      	config/sh/ushmedia.h, config/sparc/sparc.c,
      	config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
      	typos.  Follow spelling conventions.
      	* doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
      	Follow spelling conventions.
      
      From-SVN: r100218
      Kazu Hirata committed
  18. 28 Apr, 2005 1 commit
    • attribs.c, [...]: Update copyright. · fe9565ed
      	* attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
      	coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
      	errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
      	genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
      	integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
      	machmode.def, mips-tfile.c, params.c, pretty-print.c,
      	print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
      	tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
      	config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
      	config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
      	config/i386/cygming.h, config/i386/djgpp.h,
      	config/i386/lynx.h, config/i386/netware.c,
      	config/i386/winnt.c, config/ia64/ia64-c.c,
      	config/iq2000/iq2000.c, config/m32r/little.h,
      	config/m68k/m68k-protos.h, config/m68k/m68k.h,
      	config/m68k/m68k.md, config/mcore/mcore.c,
      	config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
      	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
      	config/mn10300/mn10300.h, config/ns32k/netbsd.h,
      	config/ns32k/ns32k.c, config/ns32k/ns32k.h,
      	config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
      	config/pdp11/pdp11.h, config/rs6000/darwin.h,
      	config/rs6000/default64.h, config/rs6000/rs6000-c.c,
      	config/s390/2064.md, config/s390/2084.md,
      	config/s390/s390-modes.def, config/s390/s390-protos.h,
      	config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
      	config/stormy16/stormy16.c, config/vax/vax-protos.h,
      	config/vax/vax.c, config/vax/vax.h,
      	config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
      	copyright.
      
      From-SVN: r98914
      Kazu Hirata committed
  19. 21 Apr, 2005 1 commit
    • lambda.h (lambda_vector_min_nz): Likewise. · 0e61db61
      	* lambda.h (lambda_vector_min_nz): Likewise.
      	* langhooks.h (struct lang_hooks_for_types,
      	struct lang_hooks): Likewise.
      	* output.h (assemble_integer, this_is_asm_operands): Likewise.
      	* tree.h: Likewise.
      	* vec.h: Likewise.
      	* tree-flow-inline.h (relink_imm_use): Use gcc_assert.
      
      	* optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
      	comments to avoid 'abort'.  Use gcc_assert as necessary.
      	* opts.c (common_handle_option): Likewise.
      	* pretty-print.c (pp_base_format_text): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
      	* regmove.c (try_auto_increment): Likewise.
      	* reload.c (find_valid_class, find_reloads_toplev,
      	find_equiv_reg): Likewise.
      	* reload1.c (reload, forget_old_reloads_1, function_invariant_p,
      	merge_assigned_reloads): Likewise.
      	* tree-inline.c (inline_forbidden_p_1,
      	estimate_num_insns_1): Likewise.
      	* tree-optimize.c (execute_todo): Likewise.
      	* tree-outof-ssa.c (eliminate_phi): Likewise.
      	* tree-ssa-alias.c (add_pointed_to_expr): Likewise.
      	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
      	* tree-ssa-operands.c (parse_ssa_operands,
      	get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
      	* tree-ssa-pre.c (find_or_generate_expression): Likewise.
      	* tree-ssanames.c (release_ssa_name): Likewise.
      	* tree.c (int_bit_position, int_byte_position, tree_low_cst,
      	walk_tree): Likewise.
      
      	* tree-ssa-operands.c (verify_abort): Fold into ..
      	(verify_imm_links): ... here.
      
      From-SVN: r98519
      Nathan Sidwell committed
  20. 03 Apr, 2005 1 commit
    • cfghooks.c (lv_flush_pending_stmts, [...]): New. · 1cb7dfc3
      2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
      
              * cfghooks.c (lv_flush_pending_stmts,
              cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
              lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
              * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
              lv_add_condition_to_bb,
              lv_adjust_loop_header_phi, extract_cond_bb_edges,
              flush_pending_stmts): New in cfg_hooks structure.
              (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
              extract_cond_bb_edges, lv_adjust_loop_header_phi,
              lv_add_condition_to_bb): New declarations.
              * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
              bool.
              (loop_version): Declare.
              * cfgloopmanip.c (cfghooks.h): Include.
              (duplicate_loop_to_header_edge): Change return type to bool.
              (loop_version, lv_adjust_loop_entry_edge): Move here.
              * cfgrtl.c (cfgloop.h): Include.
              (rtl_verify_flow_info_1): Fix.
              (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
              (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
              initialization.
              * tree-cfg.c (tree_lv_adjust_loop_header_phi,
              tree_lv_add_condition_to_bb): New.
              (tree_cfg_hooks): Add new hooks to initialization.
              * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
              lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
      
      From-SVN: r97481
      Mostafa Hagog committed
  21. 22 Nov, 2004 1 commit
    • cfg.c (unchecked_make_edge): Call execute_on_growing_pred after making an edge. · d9d4706f
      	* cfg.c (unchecked_make_edge): Call execute_on_growing_pred
      	after making an edge.
      	(remove_edge): Call execute_on_shrinking_pred before removing
      	an edge.
      	(redirect_edge_succ): Call execute_on_growing_pred and
      	execute_on_shrinking_pred.
      	* cfghooks.c (execute_on_growing_pred): New.
      	(execute_on_shrinking_pred): Likewise.
      	* cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
      	execute_on_shrinking_pred.
      	Add prototypes for execute_on_growing_pred and
      	execute_on_shrinking_pred.
      	* cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
      	execute_on_growing_pred and execute_on_shrinking_pred.
      	(cfg_layout_rtl_cfg_hook): Likewise.
      	* tree-cfg.c (tree_cfg_hooks): Likewise.
      
      From-SVN: r91035
      Kazu Hirata committed
  22. 13 May, 2004 1 commit
  23. 31 Jan, 2004 1 commit
    • alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c, · 283334f0
      	cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
      	flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
      	ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
      	tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
      	config/alpha/alpha.c, config/alpha/alpha.h,
      	config/alpha/alpha.md, config/alpha/unicosmk.h,
      	config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
      	config/c4x/c4x-protos.h, config/c4x/c4x.md,
      	config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
      	config/frv/frvend.c, config/i386/cygming.h,
      	config/i386/djgpp.h, config/i386/emmintrin.h,
      	config/i386/gthr-win32.c, config/i386/i386-interix.h,
      	config/i386/i386-protos.h, config/i386/openbsd.h,
      	config/i386/winnt.c, config/i386/xm-mingw32.h,
      	config/i386/xmmintrin.h, config/ia64/ia64.md,
      	config/iq2000/iq2000.md, config/m32r/m32r.md,
      	config/m68k/m68k.md, config/mcore/mcore-elf.h,
      	config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
      	config/mips/iris5gas.h, config/mips/iris6.h,
      	config/mips/iris6gas.h, config/mips/linux.h,
      	config/mips/mips.md, config/mips/netbsd.h,
      	config/mips/openbsd.h, config/mips/windiss.h,
      	config/pa/fptr.c, config/rs6000/aix.h,
      	config/rs6000/altivec.h, config/rs6000/darwin.h,
      	config/rs6000/xcoff.h, config/s390/s390-protos.h,
      	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
      	config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
      	config/sparc/sol2.h: Update copyright.
      
      From-SVN: r77018
      Kazu Hirata committed
  24. 29 Jan, 2004 1 commit
    • Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency. · f470c378
      	* Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
      	* basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
      	verify_flow_info): Declaration removed.
      	* cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
      	(debug_bb, debug_bb_n): Add argument to dump_bb call.
      	* cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
      	try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
      	instead of delete_block.
      	* cfghooks.c: Include timevar.h and toplev.h.
      	(cfg_hooks): Define here.
      	(verify_flow_info, dump_bb): Moved from cfg.c.
      	(redirect_edge_and_branch, redirect_edge_and_branch_force,
      	split_block, split_block_after_labels, move_block_after,
      	delete_basic_block, split_edge, create_basic_block,
      	create_empty_bb, can_merge_blocks_p, merge_blocks,
      	make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
      	New functions.
      	* cfghooks.h (struct cfg_hooks): Added fields name,
      	make_forwarder_block, tidy_fallthru_edge and
      	move_block_after. Changed type of verify_flow_info, dump_bb,
      	split_block fields. Renamed cfgh_split_edge and delete_block
      	fields.
      	(redirect_edge_and_branch, redirect_edge_and_branch_force,
      	split_block, delete_block, split_edge, create_basic_block,
      	can_merge_blocks_p, merge_blocks): Macros removed.
      	(cfg_hooks): Do not export.
      	(verify_flow_info, dump_bb, redirect_edge_and_branch,
      	redirect_edge_and_branch_force, split_block, split_block_after_labels,
      	move_block_after, delete_basic_block, split_edge, create_basic_block,
      	create_empty_bb, can_merge_blocks_p, merge_blocks,
      	make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
      	Declare.
      	(cfg_layout_rtl_cfg_hooks): Declare.
      	* cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
      	New functions.
      	(canonicalize_loop_headers): Use new semantics of make_forwarder_block.
      	(redirect_edge_with_latch_update): Removed.
      	(make_forwarder_block): Moved to cfghooks.c, semantics changed.
      	* cfgloopmanip.c (remove_bbs): Do not update dominators here.
      	* cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
      	rtl_delete_block, rtl_split_block, rtl_merge_blocks,
      	tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
      	cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
      	cfghooks.c.
      	(rtl_create_basic_block): Coding style fix.
      	(rtl_tidy_fallthru_edge, rtl_move_block_after,
      	rtl_make_forwarder_block): New functions.
      	(update_cfg_after_block_merging): Removed.
      	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
      	* flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
      	to dump_bb.
      	* ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
      	find_if_case_2): Don't update dominators.
      	* timevar.def (TV_CFG_VERIFY): New.
      	* loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
      	* cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
      	* cfgloopmanip.c (split_loop_bb): Don't update dominators.
      	(remove_bbs): Don't call remove_bbs.
      	(create_preheader): Use make_forwarder_block.
      	(mfb_keep_just, mfb_update_loops): New static functions.
      
      From-SVN: r76851
      Zdenek Dvorak committed
  25. 21 Dec, 2003 1 commit
    • alias.c: Fix comment formatting. · 6614fd40
      	* alias.c: Fix comment formatting.
      	* alloc-pool.c: Likewise.
      	* bitmap.c: Likewise.
      	* bitmap.h: Likewise.
      	* bt-load.c: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-decl.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* caller-save.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cgraph.c: Likewise.
      	* collect2.c: Likewise.
      	* cppfiles.c: Likewise.
      	* cpplib.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* dwarfout.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* final.c: Likewise.
      	* function.c: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genemit.c: Likewise.
      	* ggc.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* ifcvt.c: Likewise.
      	* libgcc2.h: Likewise.
      	* loop.c: Likewise.
      	* predict.h: Likewise.
      	* unwind-libunwind.c: Likewise.
      	* varasm.c: Likewise.
      
      From-SVN: r74907
      Kazu Hirata committed
  26. 06 Jul, 2003 1 commit
    • basic-block.h: Convert prototypes to ISO C90. · f55ade6e
      	* basic-block.h: Convert prototypes to ISO C90.
      	* c-parse.in: Likewise.
      	* c-pragma.h: Likewise.
      	* c-typeck.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfgloopanal.c: Likewise.
      	* dbxout.h: Likewise.
      	* debug.h: Likewise.
      	* dwarf2asm.h: Likewise.
      	* gcov.c: Likewise.
      	* gengtype-lex.l: Likewise.
      	* sched-int.h: Likewise.
      	* timevar.c: Likewise.
      
      From-SVN: r69010
      Andreas Jaeger committed
  27. 03 Jul, 2003 1 commit
    • basic-block.h (create_basic_block, [...]): Kill. · bc35512f
      	* basic-block.h (create_basic_block, merge_blocks_nomove): Kill.
      	* cfgcleanup.c (merge_blocks): Rename to merge_blocks_move.
      	(merge_blocks_move_predecessor_nojumps,
      	 merge_blocks_move_successor_nojumps): Use merge_blocks.
      	(try_optimize_cfg): Use merge_blocks_move.
      	* cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block.
      	(merge_blocks_nomove): Rename to rtl_merge_blocks.
      	(cfg_layout_create_basic_block): New.
      	(rtl_can_merge_blocks): New.
      	(cfg_layout_split_block): Do not alloc aux by hand.
      	* cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p,
      	merge_blocks.
      	(create_basic_block, can_merge_blocks_p, merge_blocks): New macros.
      	* cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand.
      	* cfgloopmanip.c (loop_split_edge_with): Likewise.
      	* ifcvt.c (merge_if_block): Use merge_blocks_nomove.
      
      	* basic-block.h (basic_block_def): Add field 'rbi'.
      	* bb-reorder.c (find_traces, rotate_loop, mark_bb_visited,
      	find_traces_1_round, copy_bb, connect_traces): Update use of rbi.
      	* cfg.c (entry_exit_blocks): Add new field.
      	* cfglayout.c: Include alloc-pool.h;
      	(cfg_layout_pool): New.
      	(record_effective_endpoints, fixup_reorder_chain,
      	fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use
      	of rbi.
      	(cfg_layout_initialize_rbi): New function.
      	(cfg_layout_initialize): Use it.
      	(cfg_layout_finalize): Clear rbi fields.
      	* cfglayout.h (RBI): Kill.
      	(cfg_layout_initialize_rbi): Declare.
      	* cfgloopmanip.c (copy_bbs): Use rbi.
      	(record_exit_edges): Likewise.
      	(duplicate_loop_to_header_edge): Likewise.
      	* cfgrtl.c (cfg_layout_create_basic_block): Use
      	cfg_layout_initialize_rbi.
      	(cfg_layout_split_block): Use rbi.
      	(cfg_layout_delete_block): Likewise.
      	* loop-init.c (loop_optimizer_finalize): Likewise.
      	* loop-unswitch.c (unswitch_loop): Likewise.
      	* tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
      
      	* cfgrtl.c: Update comments.
      	(try_redirect_by_replacing_jump): New argument.
      	(redirect_branch_edge): Break out from ...
      	(rtl_redirect_edge_and_branch): ... this one.
      	(update_cfg_after_block_merging): Break out from ...
      	(rtl_merge_blocks): ... this one.
      	(cfg_layout_split_edge): New.
      	(cfg_layout_merge_blocks): New.
      	(cfg_layout_can_merge_blocks_p): New.
      	(cfg_layout_redirect_edge_and_branch): Reorganize.
      	(cfg_layout_rtl_cfg_hooks): Fill in.
      	(cfg_layout_delete_block): Kill barriers.
      	* cfganal.c (can_fallthru): Deal with exit blocks
      	* cfglayout.c (cfg_layout_function_header): New function
      	(record_effective_endpoints): Record function header.
      	(fixup_reorder_chain): Fixup dead jumptables; place header
      
      	* basic-block.h (CLEANUP_CFGLAYOUT): New flag.
      	* bb-reorder.c (cfg_layout_initialize): Update call.
      	* cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru
      	edges in cfglayout mode.
      	* cfglayout.c (cleanup_unconditional_jumps): Kill.
      	(cfg_layout_initialize): Kill agrument loops; use cfgcleanup.
      	* cfglayout.h (cfg_layout_initialize): Update prototype.
      	* cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill.
      	* cfgloopmanip.c (loop_split_edge_with): Use split_edge.
      	* flow.c (propagate_block): Do not crash when basic block ends
      	by first insn in the chain.
      	* loop-init.c (loop_optimizer_init):  First enter cfglayout mode; later
      	do loop discovery.
      	* tracer.c (tracer): Update call of cfg_layout_initialize.
      
      From-SVN: r68899
      Jan Hubicka committed
  28. 01 Jul, 2003 1 commit
    • basic-block.h: Fix comment typos. · e0bb17a8
      	* 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
      Kazu Hirata committed
  29. 22 Jun, 2003 1 commit
    • caller-save.c: Convert to ISO C90. · d329e058
      	* caller-save.c: Convert to ISO C90.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfglayout.h: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmainip.c: Likewise.
      	* cfgrtl.c: Likewise.
      
      From-SVN: r68331
      Andreas Jaeger committed
  30. 08 Jun, 2003 1 commit
    • i386.md (subsi_3_zext, [...]): Fix predicates. · 10e9fecc
      	* i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates.
      	* i386.c (k8_avoid_jump_misspredicts): Fix debug output.
      
      	* cfg.c (verify_flow_info): Move IL independent checks from cfgrtl here.
      	(dump_bb): New based on old dump_bb in cfgrtl.c
      	(debug_bb, debug_bb_n): Move the functions from cfgrtl.c here.
      	* cfghooks.h (cfgh_verify_flow_info): Return status.
      	* cfglayout.c (cfg_layout_finalize): Verify CFG correctness.
      	* cfgrtl.c (debug_bb, debug_bb_n): Move to cfg.c
      	(dump_bb): Remove generic parts.
      	(rtl_verify_flow_info_1): Break out from rtl_verify_flow_info.
      	(rtl_verify_flow_info): Only check things dependeing on linearized RTL.
      
      	* i386-cmov1.c: Fix regular expression.
      	* i386-cvt-1.c: Likewise.
      	* i386-local.c: Likewise.
      	* i386-local2.c: Likewise.
      	* i386-mul.c: Likewise.
      	* i386-ssetype-1.c: Likewise.
      	* i386-ssetype-3.c: Likewise.
      	* i386-ssetype-5.c: Likewise.
      
      From-SVN: r67630
      Jan Hubicka committed
  31. 06 Jun, 2003 1 commit
    • function.c (FLOOR_ROUND, CEIL_ROUND): Fix. · 9ee634e3
      	* function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
      	* i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic stack frames.
      	(pro_epilogue_adjust_stack_rex64_2): New pattern
      
      	* cfghooks.h, cfghooks.c: New files.
      	* Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
      	(OBJS): Add cfghooks.o.
      	(cfghooks.o): New rule.
      	* basic-block.h (split_edge): Rename to rtl_split_edge.
      	(verify_flow_info): Rename to rtl_verify_flow_info.
      	(cfghooks.h): Included here.
      	* cfgrtl.c (split_edge): Renamed rtl_split_edge.
      	(verify_flow_info): Renamed rtl_verify_flow_info.
      	* toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
      
      	* basic-block.h (split_block, split_edge, flow_delete_block,
      	redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
      	(flow_delete_block_noexpunge):  Return void.
      	* cfg.c (verify_flow_info): New function.
      	* cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
      	try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
      	Use delete_block.
      	* cfglayout.c (function_footer): Rename to...
      	(cfg_layout_function_footer): ... this variable
      	(unlink_insn_chain): Make global.
      	(fixup_reorder_chain, record_effective_endpoints): Update.
      	(cleanup_unconditional_jumps): Use delete_block.
      	(cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
      	(cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
      	(cfg_layout_initialize, cfg_layout_finalize): Update hooks.
      	* cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block):  Delete.
      	(cfg_layout_function_footer): Declare.
      	* cfgloopmanip (split_loop_bb): Do not update RBI.
      	(remove_bbs): Use delete_block.
      	(loop_reidrect_edge, loop_delete_branch_edge): Use
      	redirect_edge_and_branch.
      	(create_preheader): Use split_block and redirect_edge_and_branch_force.
      	(split_edge_with): Likewise.
      	* cfgrtl.c: Include cfglayout.h
      	(split_edge): Rename to ...
      	(rtl_split_edge) ... this one; make local.
      	(redirect_edge_and_branch): Rename to ...
      	(rtl_redirect_edge_and_branch) ... this one; make local.
      	(redirect_edge_and_branch_force): Rename to ...
      	(rtl_redirect_edge_and_branch_force) ... this one; make local.
      	(cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
      	(cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
      	cfglayout.c; update to directly call RTL counterparts.
      	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
      	* ifcvt.c (find_cond_trap): Use delete_block.
      	(find_if_case_1): Use delete_block.
      	(find_if_case_2): Use delete_block.
      	* rtl.h (unlink_insn_chain): Declare.
      	* toplev.c (rtl_reigster_cfg_hooks): New.
      
      From-SVN: r67535
      Jan Hubicka committed