forked from M-Labs/artiq
Consistent variable naming
This commit is contained in:
parent
71adcb74bf
commit
5c228f9114
|
@ -15,14 +15,14 @@ class Core:
|
||||||
self.core_com = core_com
|
self.core_com = core_com
|
||||||
|
|
||||||
def run(self, k_function, k_args, k_kwargs):
|
def run(self, k_function, k_args, k_kwargs):
|
||||||
funcdef, rpc_map = inline(self, k_function, k_args, k_kwargs)
|
func_def, rpc_map = inline(self, k_function, k_args, k_kwargs)
|
||||||
lower_units(funcdef, self.runtime_env.ref_period)
|
lower_units(func_def, self.runtime_env.ref_period)
|
||||||
fold_constants(funcdef)
|
fold_constants(func_def)
|
||||||
unroll_loops(funcdef, 50)
|
unroll_loops(func_def, 50)
|
||||||
interleave(funcdef)
|
interleave(func_def)
|
||||||
lower_time(funcdef, getattr(self.runtime_env, "initial_time", 0))
|
lower_time(func_def, getattr(self.runtime_env, "initial_time", 0))
|
||||||
fold_constants(funcdef)
|
fold_constants(func_def)
|
||||||
|
|
||||||
binary = get_runtime_binary(self.runtime_env, funcdef)
|
binary = get_runtime_binary(self.runtime_env, func_def)
|
||||||
self.core_com.run(binary)
|
self.core_com.run(binary)
|
||||||
self.core_com.serve(rpc_map)
|
self.core_com.serve(rpc_map)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from artiq.py2llvm.module import Module
|
from artiq.py2llvm.module import Module
|
||||||
|
|
||||||
def get_runtime_binary(env, funcdef):
|
def get_runtime_binary(env, func_def):
|
||||||
module = Module(env)
|
module = Module(env)
|
||||||
module.compile_function(funcdef, dict())
|
module.compile_function(func_def, dict())
|
||||||
return module.emit_object()
|
return module.emit_object()
|
||||||
|
|
|
@ -18,8 +18,8 @@ def _gcd(a, b):
|
||||||
|
|
||||||
|
|
||||||
def init_module(module):
|
def init_module(module):
|
||||||
funcdef = ast.parse(inspect.getsource(_gcd)).body[0]
|
func_def = ast.parse(inspect.getsource(_gcd)).body[0]
|
||||||
module.compile_function(funcdef, {"a": VInt(64), "b": VInt(64)})
|
module.compile_function(func_def, {"a": VInt(64), "b": VInt(64)})
|
||||||
|
|
||||||
|
|
||||||
def _reduce(builder, a, b):
|
def _reduce(builder, a, b):
|
||||||
|
|
|
@ -31,25 +31,25 @@ class Module:
|
||||||
self.finalize()
|
self.finalize()
|
||||||
return self.env.emit_object()
|
return self.env.emit_object()
|
||||||
|
|
||||||
def compile_function(self, funcdef, param_types):
|
def compile_function(self, func_def, param_types):
|
||||||
ns = infer_types.infer_function_types(self.env, funcdef, param_types)
|
ns = infer_types.infer_function_types(self.env, func_def, param_types)
|
||||||
retval = ns["return"]
|
retval = ns["return"]
|
||||||
|
|
||||||
function_type = lc.Type.function(retval.get_llvm_type(),
|
function_type = lc.Type.function(retval.get_llvm_type(),
|
||||||
[ns[arg.arg].get_llvm_type() for arg in funcdef.args.args])
|
[ns[arg.arg].get_llvm_type() for arg in func_def.args.args])
|
||||||
function = self.llvm_module.add_function(function_type, funcdef.name)
|
function = self.llvm_module.add_function(function_type, func_def.name)
|
||||||
bb = function.append_basic_block("entry")
|
bb = function.append_basic_block("entry")
|
||||||
builder = lc.Builder.new(bb)
|
builder = lc.Builder.new(bb)
|
||||||
|
|
||||||
for arg_ast, arg_llvm in zip(funcdef.args.args, function.args):
|
for arg_ast, arg_llvm in zip(func_def.args.args, function.args):
|
||||||
arg_llvm.name = arg_ast.arg
|
arg_llvm.name = arg_ast.arg
|
||||||
for k, v in ns.items():
|
for k, v in ns.items():
|
||||||
v.alloca(builder, k)
|
v.alloca(builder, k)
|
||||||
for arg_ast, arg_llvm in zip(funcdef.args.args, function.args):
|
for arg_ast, arg_llvm in zip(func_def.args.args, function.args):
|
||||||
ns[arg_ast.arg].auto_store(builder, arg_llvm)
|
ns[arg_ast.arg].auto_store(builder, arg_llvm)
|
||||||
|
|
||||||
visitor = ast_body.Visitor(self.env, ns, builder)
|
visitor = ast_body.Visitor(self.env, ns, builder)
|
||||||
visitor.visit_statements(funcdef.body)
|
visitor.visit_statements(func_def.body)
|
||||||
|
|
||||||
if not tools.is_terminated(builder.basic_block):
|
if not tools.is_terminated(builder.basic_block):
|
||||||
if isinstance(retval, base_types.VNone):
|
if isinstance(retval, base_types.VNone):
|
||||||
|
|
|
@ -109,5 +109,5 @@ def _interleave_stmts(stmts):
|
||||||
offset += len(new_stmts) - 1
|
offset += len(new_stmts) - 1
|
||||||
|
|
||||||
|
|
||||||
def interleave(funcdef):
|
def interleave(func_def):
|
||||||
_interleave_stmts(funcdef.body)
|
_interleave_stmts(func_def.body)
|
||||||
|
|
|
@ -42,9 +42,9 @@ class _TimeLowerer(ast.NodeTransformer):
|
||||||
return node
|
return node
|
||||||
|
|
||||||
|
|
||||||
def lower_time(funcdef, initial_time):
|
def lower_time(func_def, initial_time):
|
||||||
_TimeLowerer().visit(funcdef)
|
_TimeLowerer().visit(func_def)
|
||||||
funcdef.body.insert(0, ast.copy_location(
|
func_def.body.insert(0, ast.copy_location(
|
||||||
ast.Assign(targets=[ast.Name("now", ast.Store())],
|
ast.Assign(targets=[ast.Name("now", ast.Store())],
|
||||||
value=value_to_ast(int64(initial_time))),
|
value=value_to_ast(int64(initial_time))),
|
||||||
funcdef))
|
func_def))
|
||||||
|
|
|
@ -40,8 +40,8 @@ class _UnitsLowerer(ast.NodeTransformer):
|
||||||
return node
|
return node
|
||||||
|
|
||||||
|
|
||||||
def lower_units(funcdef, ref_period):
|
def lower_units(func_def, ref_period):
|
||||||
if (not isinstance(ref_period, units.Quantity)
|
if (not isinstance(ref_period, units.Quantity)
|
||||||
or ref_period.unit is not units.s_unit):
|
or ref_period.unit is not units.s_unit):
|
||||||
raise units.DimensionError("Reference period not expressed in seconds")
|
raise units.DimensionError("Reference period not expressed in seconds")
|
||||||
_UnitsLowerer(ref_period.amount).visit(funcdef)
|
_UnitsLowerer(ref_period.amount).visit(func_def)
|
||||||
|
|
|
@ -78,10 +78,10 @@ class FunctionArrayTypesCase(unittest.TestCase):
|
||||||
class CompiledFunction:
|
class CompiledFunction:
|
||||||
def __init__(self, function, param_types):
|
def __init__(self, function, param_types):
|
||||||
module = Module()
|
module = Module()
|
||||||
funcdef = ast.parse(inspect.getsource(function)).body[0]
|
func_def = ast.parse(inspect.getsource(function)).body[0]
|
||||||
self.function, self.retval = module.compile_function(
|
self.function, self.retval = module.compile_function(
|
||||||
funcdef, param_types)
|
func_def, param_types)
|
||||||
self.argval = [param_types[arg.arg] for arg in funcdef.args.args]
|
self.argval = [param_types[arg.arg] for arg in func_def.args.args]
|
||||||
self.ee = module.get_ee()
|
self.ee = module.get_ee()
|
||||||
|
|
||||||
def __call__(self, *args):
|
def __call__(self, *args):
|
||||||
|
|
Loading…
Reference in New Issue