diff --git a/util/ego/bo/bo.c b/util/ego/bo/bo.c index 09220b43d..e5819e125 100644 --- a/util/ego/bo/bo.c +++ b/util/ego/bo/bo.c @@ -303,6 +303,7 @@ bo_optimize(p) { bblock_p b; + if (IS_ENTERED_WITH_GTO(p)) return; bo_extproc(p); loop_blocks(p); bo_loops(p); diff --git a/util/ego/cj/cj.c b/util/ego/cj/cj.c index 84f184b88..56bbe4195 100644 --- a/util/ego/cj/cj.c +++ b/util/ego/cj/cj.c @@ -287,6 +287,7 @@ cj_optimize(p) bblock_p b; bool changes = TRUE; + if (IS_ENTERED_WITH_GTO(p)) return; while(changes) { changes = FALSE; b = p->p_start; diff --git a/util/ego/cs/cs.c b/util/ego/cs/cs.c index f588de040..bb94a6cf7 100644 --- a/util/ego/cs/cs.c +++ b/util/ego/cs/cs.c @@ -40,6 +40,7 @@ STATIC cs_optimize(p) register bblock_p rbp, bdone; + if (IS_ENTERED_WITH_GTO(p)) return; avails = (avail_p) 0; entities = Lempty_set(); cs_clear(); diff --git a/util/ego/il/il1_anal.c b/util/ego/il/il1_anal.c index a400d63a9..c2958c43a 100644 --- a/util/ego/il/il1_anal.c +++ b/util/ego/il/il1_anal.c @@ -54,7 +54,8 @@ apriori(proctab) for (p = proctab; p != (proc_p) 0; p = p->p_next) { if (!BODY_KNOWN(p) || ENVIRON(p) || RECURSIVE(p) || - PARAMS_UNKNOWN(p) || MANY_LOCALS(p)) { + PARAMS_UNKNOWN(p) || MANY_LOCALS(p) || + IS_ENTERED_WITH_GTO(p)) { UNSUITABLE(p); #ifdef VERBOSE if (BODY_KNOWN(p)) { diff --git a/util/ego/lv/lv.c b/util/ego/lv/lv.c index 8b06bc7df..3d1c2a9a0 100644 --- a/util/ego/lv/lv.c +++ b/util/ego/lv/lv.c @@ -591,6 +591,7 @@ lv_flags(p) lv_optimize(p) proc_p p; { + if (IS_ENTERED_WITH_GTO(p)) return; locals = (local_p *) 0; lv_extend(p); live_variables_analysis(p); diff --git a/util/ego/ra/ra.c b/util/ego/ra/ra.c index c09914f30..844efbf2d 100644 --- a/util/ego/ra/ra.c +++ b/util/ego/ra/ra.c @@ -355,6 +355,7 @@ ra_optimize(p) offset locls; bool time_opt = (time_space_ratio == 100); + if (IS_ENTERED_WITH_GTO(p)) return; ra_extproc(p); loop_blocks(p); alloc_id =0; diff --git a/util/ego/sp/sp.c b/util/ego/sp/sp.c index 910898f0e..e3813104f 100644 --- a/util/ego/sp/sp.c +++ b/util/ego/sp/sp.c @@ -197,6 +197,7 @@ sp_optimize(p) { register bblock_p b; + if (IS_ENTERED_WITH_GTO(p)) return; mark_unsave_blocks(p); for (b = p->p_start; b != 0; b = b->b_next) { stack_pollution(b); diff --git a/util/ego/sr/sr.c b/util/ego/sr/sr.c index 00cea57ba..5c2b1d837 100644 --- a/util/ego/sr/sr.c +++ b/util/ego/sr/sr.c @@ -216,6 +216,7 @@ STATIC sr_cleanproc(p) sr_optimize(p) proc_p p; { + if (IS_ENTERED_WITH_GTO(p)) return; sr_extproc(p); loopblocks(p); opt_proc(p); diff --git a/util/ego/ud/ud.c b/util/ego/ud/ud.c index 3c6112571..3a189de52 100644 --- a/util/ego/ud/ud.c +++ b/util/ego/ud/ud.c @@ -533,6 +533,7 @@ STATIC ud_cleanup(p) ud_optimize(p) proc_p p; { + if (IS_ENTERED_WITH_GTO(p)) return; ud_extend(p); locals = (local_p *) 0; vardefs = (cset *) 0;