def main(): preprocess() Logger.info('Pre-processing is done', stdout=True) locate_callsite() Logger.info('Call-site location is found', stdout=True) collect_kernel_info() Logger.info('Kernel information is collected', stdout=True) mark_generation_info() Logger.info('Kernel generation information is marked') generate_srcfiles() Logger.info('Source files are generated', stdout=True) # generate_state() # Logger.info('Instrumented files are generated', stdout=True) # # generate_kernel() # Logger.info('Kernel files are generated', stdout=True) generate_makefiles() Logger.info('Makefiles are generated', stdout=True) postprocess() Logger.info('Post-processing is done', stdout=True) Logger.info('Completed.', stdout=True)
def execute(self): self._trees = [] self.genfiles = [] self.kernel_name = State.kernel_driver['name'] try: print '' self.initialize() preprocess() Logger.info('Pre-processing is done', stdout=True) analyze() Logger.info('Program is analyzed', stdout=True) self.transform() self.output() postprocess() Logger.info('Post-processing is done', stdout=True) Logger.info('Completed.', stdout=True) except UserException as e: print 'ERROR: %s' % str(e) Logger.info(e) #Logger.critical(e) except ProgramException as e: Logger.critical(e) except Exception as e: Logger.critical(e) finally: pass
def main(self): Logger.info('Starting KExt', stdout=True) # create state directories if not os.path.exists(Config.path['state']): os.makedirs(Config.path['state']) # create kernel directories if not os.path.exists(Config.path['kernel']): os.makedirs(Config.path['kernel']) os.system('rm -f %s/kgen_statefile.lst' % Config.path['kernel']) os.system('rm -f %s/done.*' % Config.path['kernel']) preprocess() Logger.info('Pre-processing is done', stdout=True) analyze() Logger.info('Program is analyzed', stdout=True) # generate kgen_driver.f90 in kernel directory self.driver = self.create_tree() program = self.create_program(self.driver) program.name = self.kernel_name self.append_program_in_tree(self.driver, program) # init plugin framework init_plugins([KERNEL_ID_0]) # construct a generation tree for filepath, (srcobj, mods_used, units_used) in State.srcfiles.iteritems(): if hasattr(srcobj.tree, 'geninfo') and KGGenType.has_state( srcobj.tree.geninfo): kfile = genkobj(None, srcobj.tree, KERNEL_ID_0) sfile = gensobj(None, srcobj.tree, KERNEL_ID_0) if kfile is None or sfile is None: raise ProgramException( 'Kernel source file is not generated for %s.' % filepath) self.genfiles.append((kfile, sfile, filepath)) State.used_srcfiles[filepath] = (srcobj, mods_used, units_used) # process each nodes in the tree for plugin_name in event_register.keys(): for kfile, sfile, filepath in self.genfiles: kfile.created([plugin_name]) sfile.created([plugin_name]) for tree in self._trees: tree.created([plugin_name]) for kfile, sfile, filepath in self.genfiles: kfile.process([plugin_name]) sfile.process([plugin_name]) for tree in self._trees: tree.process([plugin_name]) for kfile, sfile, filepath in self.genfiles: kfile.finalize([plugin_name]) sfile.finalize([plugin_name]) for tree in self._trees: tree.finalize([plugin_name]) for kfile, sfile, filepath in self.genfiles: kfile.flatten(KERNEL_ID_0, [plugin_name]) sfile.flatten(KERNEL_ID_0, [plugin_name]) for tree in self._trees: tree.flatten(KERNEL_ID_0, [plugin_name])
def main(self): Logger.info('Starting KExt', stdout=True) # create state directories if not os.path.exists(Config.path['state']): os.makedirs(Config.path['state']) # create kernel directories if not os.path.exists(Config.path['kernel']): os.makedirs(Config.path['kernel']) os.system('rm -f %s/kgen_statefile.lst'%Config.path['kernel']) os.system('rm -f %s/done.*'%Config.path['kernel']) preprocess() Logger.info('Pre-processing is done', stdout=True) analyze() Logger.info('Program is analyzed', stdout=True) # generate kgen_driver.f90 in kernel directory self.driver = self.create_tree() program = self.create_program(self.driver) program.name = self.kernel_name self.append_program_in_tree(self.driver, program) # init plugin framework init_plugins([KERNEL_ID_0]) # construct a generation tree for filepath, (srcobj, mods_used, units_used) in State.srcfiles.iteritems(): if hasattr(srcobj.tree, 'geninfo') and KGGenType.has_state(srcobj.tree.geninfo): kfile = genkobj(None, srcobj.tree, KERNEL_ID_0) sfile = gensobj(None, srcobj.tree, KERNEL_ID_0) if kfile is None or sfile is None: raise ProgramException('Kernel source file is not generated for %s.'%filepath) self.genfiles.append((kfile, sfile, filepath)) State.used_srcfiles[filepath] = (srcobj, mods_used, units_used) # process each nodes in the tree for plugin_name in event_register.keys(): for kfile, sfile, filepath in self.genfiles: kfile.created([plugin_name]) sfile.created([plugin_name]) for tree in self._trees: tree.created([plugin_name]) for kfile, sfile, filepath in self.genfiles: kfile.process([plugin_name]) sfile.process([plugin_name]) for tree in self._trees: tree.process([plugin_name]) for kfile, sfile, filepath in self.genfiles: kfile.finalize([plugin_name]) sfile.finalize([plugin_name]) for tree in self._trees: tree.finalize([plugin_name]) for kfile, sfile, filepath in self.genfiles: kfile.flatten(KERNEL_ID_0, [plugin_name]) sfile.flatten(KERNEL_ID_0, [plugin_name]) for tree in self._trees: tree.flatten(KERNEL_ID_0, [plugin_name])