public IList <XILSInstr> Rewrite(IList <XILSInstr> instrs)
        {
            var impl = new ImplTypeRewriterImpl(instrs);

            impl.Rewrite();
            return(impl.OutInstructions);
        }
        public static XILSFunction Rewrite(XILSFunction func)
        {
            var rw = new ImplTypeRewriterImpl(func.Instructions);

            rw.Rewrite();
            var result = new XILSFunction(func.Name, func.Arguments, rw.Locals.ToArray(), rw.OutInstructions.ToArray());

            return(result);
        }
 public IList<XILSInstr> Rewrite(IList<XILSInstr> instrs)
 {
     var impl = new ImplTypeRewriterImpl(instrs);
     impl.Rewrite();
     return impl.OutInstructions;
 }
 public static XILSFunction Rewrite(XILSFunction func)
 {
     var rw = new ImplTypeRewriterImpl(func.Instructions);
     rw.Rewrite();
     var result = new XILSFunction(func.Name, func.Arguments, rw.Locals.ToArray(), rw.OutInstructions.ToArray());
     return result;
 }