void NodeGen::materializeBlock(PReg* r, SplitSig* sig, PRegBList* materialized, bool recursive) { Unused(recursive); if (r->isBlockPReg() && !materialized->contains(r)) { BlockPReg* bpr = (BlockPReg*)r; bpr->isMaterialized = true; // make sure the block is created APPEND(new BlockCreateNode(bpr, sig)); // flush if uplevel-accessed // done by BlockCreateNode // if (recursive) APPEND(new FlushNode(currentScope(), bpr, true)); materialized->append(bpr); // also make sure all uplevel-accessed blocks exist msig = sig; mlist = materialized; // params for materializeHelper bpr->nscope()->doUplevelAccesses(bpr, materializeHelper); } }