def get_compiled_mfsim(self, tree, file): BasicBlock.id_counter = 1 ir = self.get_ir(tree) ir = Program(functions=ir.functions, config=CompilerCLI([ "-d", "-inline", "-t", "mfsim", "-i", file, "-o", "output/" ]).config, symbol_table=ir.symbol_table, bb_graph=ir.graph, name=file, calls=ir.calls) pm = PassManager(ir) pm.run_analysis() pm.run_transformations() prog = pm.program target = MFSimTarget(prog) target.transform() return str([ target.num_cgs, target.num_transfers, target.num_dags, target.num_detects, target.num_dispense, target.num_dispose, target.num_edges, target.num_heats, target.num_mixes, target.num_splits, target.expid ])
def optimizations(self, program: Program): """ Run the various optimizations that can be run. :param program: :return: """ passes = PassManager(self.program) passes.run_analysis() passes.run_transformations() return passes.program
def get_volume(self, tree, file): ir = self.get_ir(tree) ir = Program(functions=ir.functions, config=CompilerCLI(["-d", "-tv", "-i", file, "-o", "output/"]).config, symbol_table=ir.symbol_table, bb_graph=ir.graph, name=file, calls=ir.calls) pm = PassManager(ir) pm.run_analysis() pm.run_transformations() prog = pm.program return prog.analysis['volume_tracking']