public override bool Optimize(List <BaseBlock> codeBlocks)
        {
            var CFG = new ControlFlowGraph(codeBlocks);

            var active = CFG.GenerateInputOutputActiveDefs().Item2;

            bool ret = false;

            for (int i = 0; i < codeBlocks.Count; ++i)
            {
                ret |= OptimizeBlock(codeBlocks[i], active[i]);
            }
            return(ret);
        }