浏览代码

Optimize dict_copy operation

Yentl Van Tendeloo 7 年之前
父节点
当前提交
e2b0208a17
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      kernel/modelverse_kernel/compiled.py

+ 7 - 0
kernel/modelverse_kernel/compiled.py

@@ -502,3 +502,10 @@ def string_startswith(a, b, **remainder):
         b['value'], = yield [("RV", [b['id']])]
 
     yield [("RETURN", [{"value": a['value'].startswith(b['value'])}])]
+
+def dict_copy(a, **remainder):
+    keys, new = yield [("RDK", [a['id']]), ("CN", [])]
+    values = yield [("RDN", [a['id'], i]) for i in keys]
+    keys = yield [("RV", [i]) for i in keys]
+    yield [("CD", [new, k, v]) for k, v in zip(keys, values)]
+    yield [("RETURN", [{'id': new}])]