hTab *iCodehTab = NULL;
hTab *iCodeSeqhTab = NULL;
+/*-----------------------------------------------------------------*/
+/* hashiCodeKeys - add all iCodes to the hash table */
+/*-----------------------------------------------------------------*/
+void
+hashiCodeKeys (eBBlock ** ebbs, int count)
+{
+ int i;
+
+ for (i = 0; i < count; i++)
+ {
+ iCode *ic;
+ for (ic = ebbs[i]->sch; ic; ic = ic->next)
+ hTabAddItem (&iCodehTab, ic->key, ic);
+ }
+}
+
/*-----------------------------------------------------------------*/
/* sequenceiCode - creates a sequence number for the iCode & add */
/*-----------------------------------------------------------------*/
{
ic->seq = ++iCodeSeq;
ic->depth = ebbs[i]->depth;
- hTabAddItem (&iCodehTab, ic->key, ic);
+ //hTabAddItem (&iCodehTab, ic->key, ic);
hTabAddItem (&iCodeSeqhTab, ic->seq, ic);
}
ebbs[i]->lSeq = iCodeSeq;
}
}
+ if (POINTER_SET(ic) && IS_SYMOP(IC_RESULT(ic)))
+ incUsed (ic, IC_RESULT(ic));
+
if (IS_ITEMP(IC_RESULT(ic)))
{
unvisitBlocks(ebbs, count);
iCodeSeq = 0;
setToNull ((void *) &iCodehTab);
iCodehTab = newHashTable (iCodeKey);
+ hashiCodeKeys (ebbs, count);
setToNull ((void *) &iCodeSeqhTab);
iCodeSeqhTab = newHashTable (iCodeKey);
sequenceiCode (ebbs, count);