def __init__(self, parent=None, topology_name="", loop_type=""): Loop.__init__(self, parent=parent, valid_loop_types=["inner", "outer"]) self.loop_type = loop_type if self._loop_type == "inner": tag = "inner_loop_idx" suggested_name = "i" elif self.loop_type == "outer": tag = "outer_loop_idx" suggested_name = "j" symtab = self.scope.symbol_table try: self.variable = symtab.lookup_with_tag(tag) except KeyError: self.variable = symtab.new_symbol(suggested_name, tag, symbol_type=DataSymbol, datatype=INTEGER_TYPE) # Pre-initialise the Loop children # TODO: See issue #440 self.addchild(Literal("NOT_INITIALISED", INTEGER_TYPE, parent=self)) # start self.addchild(Literal("NOT_INITIALISED", INTEGER_TYPE, parent=self)) # stop self.addchild(Literal("1", INTEGER_TYPE, parent=self)) # step self.addchild(Schedule(parent=self)) # loop body
def __init__(self, parent=None, loop_type=""): Loop.__init__(self, parent=parent, valid_loop_types=["", "colours", "colour"]) self.loop_type = loop_type # Work out the variable name from the loop type if self._loop_type == "colours": tag = "colours_loop_idx" suggested_name = "colour" elif self._loop_type == "colour": tag = "colour_loop_idx" suggested_name = "cell" else: tag = "cell_loop_idx" suggested_name = "cell" symtab = self.scope.symbol_table try: data_symbol = symtab.lookup_with_tag(tag) except KeyError: name = symtab.new_symbol_name(suggested_name) data_symbol = DataSymbol(name, INTEGER_TYPE) symtab.add(data_symbol, tag=tag) self.variable = data_symbol # Pre-initialise the Loop children # TODO: See issue #440 self.addchild(Literal("NOT_INITIALISED", INTEGER_TYPE, parent=self)) # start self.addchild(Literal("NOT_INITIALISED", INTEGER_TYPE, parent=self)) # stop self.addchild(Literal("1", INTEGER_TYPE, parent=self)) # step self.addchild(Schedule(parent=self)) # loop body
def __init__(self, parent=None, variable=None): # The order in which names are returned in # get_valid_loop_types depends on the Python implementation # (as it pulls the values from a dictionary). To make it clear # that there is no implied ordering here we store # valid_loop_types as a set, rather than a list. valid_loop_types = set( Config.get().api_conf("nemo").get_valid_loop_types()) Loop.__init__(self, parent=parent, variable=variable, valid_loop_types=valid_loop_types)
def __init__(self, parent=None, variable=None): valid_loop_types = Config.get().api_conf("nemo").get_valid_loop_types() Loop.__init__(self, parent=parent, variable=variable, valid_loop_types=valid_loop_types)