+ /* set max & min dfNum for loopRegion */
+ for ( block = setFirstItem(aloop->regBlocks); block;
+ block = setNextItem(aloop->regBlocks)) {
+ if (block->dfnum > dfMax) dfMax = block->dfnum;
+ if (block->dfnum < dfMin) dfMin = block->dfnum;
+ }
+
+ /* all blocks that have dfnumbers between dfMin & dfMax are also
+ part of loop */
+ for (i = 0 ; i < count ; i++) {
+ if (ebbs[i]->dfnum > dfMin &&
+ ebbs[i]->dfnum < dfMax &&
+ !isinSet(aloop->regBlocks,ebbs[i])) {
+ if (!ebbs[i]->partOfLoop) {
+#if !defined(LIVERANGEHUNT)
+ ebbs[i]->partOfLoop = aloop;
+#else
+ loopInsert(&aloop->regBlocks,ebbs[i]);
+#endif
+ }
+ }
+ }
+
+#ifdef LIVERANGEHUNT
+ printf ("================\n");
+ printf (" loop with entry -- > ");
+ printEntryLabel (aloop->entry, ap);
+ printf ("\n");
+ printf (" loop body --> ");
+ applyToSet (aloop->regBlocks, printEntryLabel);
+ printf ("\n");
+ printf (" loop exits --> ");
+ applyToSet (aloop->exits, printEntryLabel);
+ printf ("\n");
+#endif
+
+ /* and if this is a conditional block, the other side of the IFX
+ (if any, that could have a greater dfnum) is too */
+ {
+ // just a burp, but I'm getting close :)
+ }
+