From: Jason Ekstrand Date: Fri, 19 Oct 2018 19:01:31 +0000 (-0500) Subject: nir/algebraic: Make internal classes str-able X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=641f4be8e80eb1abd4d497bc136b9572062d8003;p=mesa.git nir/algebraic: Make internal classes str-able Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/compiler/nir/nir_algebraic.py b/src/compiler/nir/nir_algebraic.py index eccef0d2c97..39b85089b1e 100644 --- a/src/compiler/nir/nir_algebraic.py +++ b/src/compiler/nir/nir_algebraic.py @@ -104,10 +104,14 @@ static const ${val.c_type} ${val.name} = { % endif };""") - def __init__(self, name, type_str): + def __init__(self, val, name, type_str): + self.in_val = str(val) self.name = name self.type_str = type_str + def __str__(self): + return self.in_val + @property def type_enum(self): return "nir_search_value_" + self.type_str @@ -130,8 +134,9 @@ _constant_re = re.compile(r"(?P[^@\(]+)(?:@(?P\d+))?") class Constant(Value): def __init__(self, val, name): - Value.__init__(self, name, "constant") + Value.__init__(self, val, name, "constant") + self.in_val = str(val) if isinstance(val, (str)): m = _constant_re.match(val) self.value = ast.literal_eval(m.group('value')) @@ -177,7 +182,7 @@ _var_name_re = re.compile(r"(?P#)?(?P\w+)" class Variable(Value): def __init__(self, val, name, varset): - Value.__init__(self, name, "variable") + Value.__init__(self, val, name, "variable") m = _var_name_re.match(val) assert m and m.group('name') is not None @@ -197,6 +202,9 @@ class Variable(Value): self.index = varset[self.var_name] + def __str__(self): + return self.in_val + def type(self): if self.required_type == 'bool': return "nir_type_bool" @@ -210,7 +218,7 @@ _opcode_re = re.compile(r"(?P~)?(?P\w+)(?:@(?P\d+))?" class Expression(Value): def __init__(self, expr, name_base, varset): - Value.__init__(self, name_base, "expression") + Value.__init__(self, expr, name_base, "expression") assert isinstance(expr, tuple) m = _opcode_re.match(expr[0])