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;
 }