diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-25 10:55:54 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-25 10:55:54 +0000 |
commit | 48e1416a24d50cacbb2a5e06a9ee61dd8cbee313 (patch) | |
tree | 4375f002b368e9044a1d9ca874026be04b7c3105 /gcc/sel-sched-ir.h | |
parent | 7f0f96af0499f0a9f8ee7198823d311f1a66ca9b (diff) | |
download | gcc-48e1416a24d50cacbb2a5e06a9ee61dd8cbee313.tar.gz |
Remove trailing white spaces.
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154645 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sel-sched-ir.h')
-rw-r--r-- | gcc/sel-sched-ir.h | 118 |
1 files changed, 59 insertions, 59 deletions
diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h index 9563d2a0a4f..1950a65e77f 100644 --- a/gcc/sel-sched-ir.h +++ b/gcc/sel-sched-ir.h @@ -68,7 +68,7 @@ typedef _xlist_t ilist_t; #define ILIST_INSN(L) (_XLIST_X (L)) #define ILIST_NEXT(L) (_XLIST_NEXT (L)) -/* This lists possible transformations that done locally, i.e. in +/* This lists possible transformations that done locally, i.e. in moveup_expr. */ enum local_trans_type { @@ -76,7 +76,7 @@ enum local_trans_type TRANS_SPECULATION }; -/* This struct is used to record the history of expression's +/* This struct is used to record the history of expression's transformations. */ struct expr_history_def_1 { @@ -114,8 +114,8 @@ struct _expr control on scheduling. */ int spec; - /* Degree of speculativeness measured as probability of executing - instruction's original basic block given relative to + /* Degree of speculativeness measured as probability of executing + instruction's original basic block given relative to the current scheduling point. */ int usefulness; @@ -128,7 +128,7 @@ struct _expr /* Number of times the insn was scheduled. */ int sched_times; - /* A basic block index this was originated from. Zero when there is + /* A basic block index this was originated from. Zero when there is more than one originator. */ int orig_bb_index; @@ -140,23 +140,23 @@ struct _expr (used only during move_op ()). */ ds_t spec_to_check_ds; - /* Cycle on which original insn was scheduled. Zero when it has not yet + /* Cycle on which original insn was scheduled. Zero when it has not yet been scheduled or more than one originator. */ int orig_sched_cycle; /* This vector contains the history of insn's transformations. */ VEC(expr_history_def, heap) *history_of_changes; - /* True (1) when original target (register or memory) of this instruction + /* True (1) when original target (register or memory) of this instruction is available for scheduling, false otherwise. -1 means we're not sure; please run find_used_regs to clarify. */ signed char target_available; - /* True when this expression needs a speculation check to be scheduled. + /* True when this expression needs a speculation check to be scheduled. This is used during find_used_regs. */ BOOL_BITFIELD needs_spec_check_p : 1; - /* True when the expression was substituted. Used for statistical + /* True when the expression was substituted. Used for statistical purposes. */ BOOL_BITFIELD was_substituted : 1; @@ -195,7 +195,7 @@ typedef expr_def *expr_t; #define EXPR_CANT_MOVE(EXPR) ((EXPR)->cant_move) #define EXPR_WAS_CHANGED(EXPR) (VEC_length (expr_history_def, \ - EXPR_HISTORY_OF_CHANGES (EXPR)) > 0) + EXPR_HISTORY_OF_CHANGES (EXPR)) > 0) /* Insn definition for list of original insns in find_used_regs. */ struct _def @@ -204,7 +204,7 @@ struct _def /* FIXME: Get rid of CROSSES_CALL in each def, since if we're moving up rhs from two different places, but only one of the code motion paths - crosses a call, we can't use any of the call_used_regs, no matter which + crosses a call, we can't use any of the call_used_regs, no matter which path or whether all paths crosses a call. Thus we should move CROSSES_CALL to static params. */ bool crosses_call; @@ -232,7 +232,7 @@ struct _bnd /* This set moved to the fence. */ av_set_t av1; - + /* Deps context at this boundary. As long as we have one boundary per fence, this is just a pointer to the same deps context as in the corresponding fence. */ @@ -286,7 +286,7 @@ struct _fence /* A vector of insns that are scheduled but not yet completed. */ VEC (rtx,gc) *executing_insns; - /* A vector indexed by UIDs that caches the earliest cycle on which + /* A vector indexed by UIDs that caches the earliest cycle on which an insn can be scheduled on this fence. */ int *ready_ticks; @@ -464,7 +464,7 @@ _list_iter_remove_nofree (_list_iterator *ip) #define _FOR_EACH_1(TYPE, ELEM, I, LP) \ for (_list_iter_start (&(I), (LP), true); \ _list_iter_cond_##TYPE (*(I).lp, &(ELEM)); \ - _list_iter_next (&(I))) + _list_iter_next (&(I))) /* _xlist_t functions. */ @@ -666,7 +666,7 @@ struct vinsn_def #define VINSN_MAY_TRAP_P(VI) ((VI)->may_trap_p) -/* An entry of the hashtable describing transformations happened when +/* An entry of the hashtable describing transformations happened when moving up through an insn. */ struct transformed_insns { @@ -709,18 +709,18 @@ struct _sel_insn_data /* An INSN_UID bit is set when deps analysis result is already known. */ bitmap analyzed_deps; - /* An INSN_UID bit is set when a hard dep was found, not set when + /* An INSN_UID bit is set when a hard dep was found, not set when no dependence is found. This is meaningful only when the analyzed_deps bitmap has its bit set. */ bitmap found_deps; - /* An INSN_UID bit is set when this is a bookkeeping insn generated from + /* An INSN_UID bit is set when this is a bookkeeping insn generated from a parent with this uid. */ bitmap originators; /* A hashtable caching the result of insn transformations through this one. */ htab_t transformed_insns; - + /* A context incapsulating this insn. */ struct deps deps_context; @@ -767,8 +767,8 @@ extern sel_insn_data_def insn_sid (insn_t); #define INSN_ASM_P(INSN) (SID (INSN)->asm_p) #define INSN_SCHED_NEXT(INSN) (SID (INSN)->sched_next) #define INSN_ANALYZED_DEPS(INSN) (SID (INSN)->analyzed_deps) -#define INSN_FOUND_DEPS(INSN) (SID (INSN)->found_deps) -#define INSN_DEPS_CONTEXT(INSN) (SID (INSN)->deps_context) +#define INSN_FOUND_DEPS(INSN) (SID (INSN)->found_deps) +#define INSN_DEPS_CONTEXT(INSN) (SID (INSN)->deps_context) #define INSN_ORIGINATORS(INSN) (SID (INSN)->originators) #define INSN_ORIGINATORS_BY_UID(UID) (SID_BY_UID (UID)->originators) #define INSN_TRANSFORMED_INSNS(INSN) (SID (INSN)->transformed_insns) @@ -898,7 +898,7 @@ extern void sel_finish_global_bb_info (void); #define BB_LV_SET_VALID_P(BB) (SEL_GLOBAL_BB_INFO (BB)->lv_set_valid_p) /* Per basic block data for the region. */ -typedef struct +typedef struct { /* This insn stream is constructed in such a way that it should be traversed by PREV_INSN field - (*not* NEXT_INSN). */ @@ -947,11 +947,11 @@ extern sbitmap bbs_pipelined; extern bool enable_moveup_set_path_p; extern bool pipelining_p; extern bool bookkeeping_p; -extern int max_insns_to_rename; +extern int max_insns_to_rename; extern bool preheader_removed; /* Software lookahead window size. - According to the results in Nakatani and Ebcioglu [1993], window size of 16 + According to the results in Nakatani and Ebcioglu [1993], window size of 16 is enough to extract most ILP in integer code. */ #define MAX_WS (PARAM_VALUE (PARAM_SELSCHED_MAX_LOOKAHEAD)) @@ -969,7 +969,7 @@ typedef struct /* The previous edge saved after skipping empty blocks. */ edge e2; - + /* Edge iterator used when there are successors in other basic blocks. */ edge_iterator ei; @@ -979,8 +979,8 @@ typedef struct /* Flags that are passed to the iterator. We return only successors that comply to these flags. */ short flags; - - /* When flags include SUCCS_ALL, this will be set to the exact type + + /* When flags include SUCCS_ALL, this will be set to the exact type of the sucessor we're traversing now. */ short current_flags; @@ -998,7 +998,7 @@ struct succs_info /* Successors that correspond to the flags. */ insn_vec_t succs_ok; - /* Their probabilities. As of now, we don't need this for other + /* Their probabilities. As of now, we don't need this for other successors. */ VEC(int,heap) *probs_ok; @@ -1027,7 +1027,7 @@ extern bool in_current_region_p (basic_block); static inline bool inner_loop_header_p (basic_block bb) { - struct loop *inner_loop; + struct loop *inner_loop; if (!current_loop_nest) return false; @@ -1048,7 +1048,7 @@ inner_loop_header_p (basic_block bb) return true; } - return false; + return false; } /* Return exit edges of LOOP, filtering out edges with the same dest bb. */ @@ -1066,7 +1066,7 @@ get_loop_exit_edges_unique_dests (const struct loop *loop) int i; edge e; bool was_dest = false; - + for (i = 0; VEC_iterate (edge, edges, i, e); i++) if (e->dest == exit->e->dest) { @@ -1101,10 +1101,10 @@ sel_bb_empty_or_nop_p (basic_block bb) return true; } -/* Collect all loop exits recursively, skipping empty BBs between them. +/* Collect all loop exits recursively, skipping empty BBs between them. E.g. if BB is a loop header which has several loop exits, traverse all of them and if any of them turns out to be another loop header - (after skipping empty BBs), add its loop exits to the resulting vector + (after skipping empty BBs), add its loop exits to the resulting vector as well. */ static inline VEC(edge, heap) * get_all_loop_exits (basic_block bb) @@ -1129,12 +1129,12 @@ get_all_loop_exits (basic_block bb) struct loop *pred_loop = NULL; int i; edge e; - + for (this_loop = bb->loop_father; this_loop && this_loop != current_loop_nest; this_loop = loop_outer (this_loop)) pred_loop = this_loop; - + this_loop = pred_loop; gcc_assert (this_loop != NULL); @@ -1145,17 +1145,17 @@ get_all_loop_exits (basic_block bb) if (in_current_region_p (e->dest)) { VEC(edge, heap) *next_exits = get_all_loop_exits (e->dest); - + if (next_exits) { int j; edge ne; - + /* Add all loop exits for the current edge into the resulting vector. */ for (j = 0; VEC_iterate (edge, next_exits, j, ne); j++) VEC_safe_push (edge, heap, exits, ne); - + /* Remove the original edge. */ VEC_ordered_remove (edge, exits, i); @@ -1181,7 +1181,7 @@ get_all_loop_exits (basic_block bb) /* Include successors that are outside of the current region. */ #define SUCCS_OUT (4) -/* When pipelining of the outer loops is enabled, skip innermost loops +/* When pipelining of the outer loops is enabled, skip innermost loops to their exits. */ #define SUCCS_SKIP_TO_LOOP_EXITS (8) @@ -1244,7 +1244,7 @@ _succ_iter_cond (succ_iterator *ip, rtx *succp, rtx insn, } else { - while (1) + while (1) { edge e_tmp = NULL; @@ -1253,12 +1253,12 @@ _succ_iter_cond (succ_iterator *ip, rtx *succp, rtx insn, { do { - VEC_iterate (edge, ip->loop_exits, + VEC_iterate (edge, ip->loop_exits, ip->current_exit, e_tmp); ip->current_exit++; } while (e_tmp && !check (e_tmp, ip)); - + if (!e_tmp) VEC_free (edge, heap, ip->loop_exits); } @@ -1278,8 +1278,8 @@ _succ_iter_cond (succ_iterator *ip, rtx *succp, rtx insn, /* Consider bb as a possible loop header. */ if ((ip->flags & SUCCS_SKIP_TO_LOOP_EXITS) && flag_sel_sched_pipelining_outer_loops - && (!in_current_region_p (bb) - || BLOCK_TO_BB (ip->bb->index) + && (!in_current_region_p (bb) + || BLOCK_TO_BB (ip->bb->index) < BLOCK_TO_BB (bb->index))) { /* Get all loop exits recursively. */ @@ -1288,7 +1288,7 @@ _succ_iter_cond (succ_iterator *ip, rtx *succp, rtx insn, if (ip->loop_exits) { ip->current_exit = 0; - /* Move the iterator now, because we won't do + /* Move the iterator now, because we won't do succ_iter_next until loop exits will end. */ ei_next (&(ip->ei)); break; @@ -1390,8 +1390,8 @@ _eligible_successor_edge_p (edge e1, succ_iterator *ip) bb = nbb; continue; } - - if (!in_current_region_p (bb) + + if (!in_current_region_p (bb) && !(flags & SUCCS_OUT)) return false; @@ -1401,22 +1401,22 @@ _eligible_successor_edge_p (edge e1, succ_iterator *ip) e2 = EDGE_SUCC (bb, 0); bb = e2->dest; } - + /* Save the second edge for later checks. */ ip->e2 = e2; if (in_current_region_p (bb)) { - /* BLOCK_TO_BB sets topological order of the region here. - It is important to use real predecessor here, which is ip->bb, - as we may well have e1->src outside current region, + /* BLOCK_TO_BB sets topological order of the region here. + It is important to use real predecessor here, which is ip->bb, + as we may well have e1->src outside current region, when skipping to loop exits. */ bool succeeds_in_top_order = (BLOCK_TO_BB (ip->bb->index) < BLOCK_TO_BB (bb->index)); /* This is true for the all cases except the last one. */ ip->current_flags = SUCCS_NORMAL; - + /* We are advancing forward in the region, as usual. */ if (succeeds_in_top_order) { @@ -1426,9 +1426,9 @@ _eligible_successor_edge_p (edge e1, succ_iterator *ip) return !!(flags & SUCCS_NORMAL); } - /* This is a back edge. During pipelining we ignore back edges, + /* This is a back edge. During pipelining we ignore back edges, but only when it leads to the same loop. It can lead to the header - of the outer loop, which will also be the preheader of + of the outer loop, which will also be the preheader of the current loop. */ if (pipelining_p && e1->src->loop_father == bb->loop_father) @@ -1463,12 +1463,12 @@ bb_next_bb (basic_block bb) case 0: return bb->next_bb; - case 1: + case 1: return single_succ (bb); case 2: return FALLTHRU_EDGE (bb)->dest; - + default: return bb->next_bb; } @@ -1536,11 +1536,11 @@ extern void merge_expr_data (expr_t, expr_t, insn_t); extern void merge_expr (expr_t, expr_t, insn_t); extern void clear_expr (expr_t); extern unsigned expr_dest_regno (expr_t); -extern rtx expr_dest_reg (expr_t); -extern int find_in_history_vect (VEC(expr_history_def, heap) *, +extern rtx expr_dest_reg (expr_t); +extern int find_in_history_vect (VEC(expr_history_def, heap) *, rtx, vinsn_t, bool); -extern void insert_in_history_vect (VEC(expr_history_def, heap) **, - unsigned, enum local_trans_type, +extern void insert_in_history_vect (VEC(expr_history_def, heap) **, + unsigned, enum local_trans_type, vinsn_t, vinsn_t, ds_t); extern void mark_unavailable_targets (av_set_t, av_set_t, regset); extern int speculate_expr (expr_t, ds_t); |