Skip to content

Commit f3735df

Browse files
covanamrostedt
authored andcommitted
verification/rvgen: Do not generate unused variables
ltl2k generates all variable definition in both ltl_start() and ltl_possible_next_states(). However, these two functions may not use all the variables, causing "unused variable" compiler warning. Change the script to only generate used variables. Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://lore.kernel.org/636b2b2d99a9bd46a9f77a078d44ebd7ffc7508c.1752850449.git.namcao@linutronix.de Signed-off-by: Nam Cao <namcao@linutronix.de> Reviewed-by: Gabriele Monaco <gmonaco@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent 6fb37c2 commit f3735df

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

tools/verification/rvgen/rvgen/ltl2k.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,20 +106,25 @@ def _fill_atoms_to_string(self):
106106
])
107107
return buf
108108

109-
def _fill_atom_values(self):
109+
def _fill_atom_values(self, required_values):
110110
buf = []
111111
for node in self.ltl:
112-
if node.op.is_temporal():
112+
if str(node) not in required_values:
113113
continue
114114

115115
if isinstance(node.op, ltl2ba.AndOp):
116116
buf.append("\tbool %s = %s && %s;" % (node, node.op.left, node.op.right))
117+
required_values |= {str(node.op.left), str(node.op.right)}
117118
elif isinstance(node.op, ltl2ba.OrOp):
118119
buf.append("\tbool %s = %s || %s;" % (node, node.op.left, node.op.right))
120+
required_values |= {str(node.op.left), str(node.op.right)}
119121
elif isinstance(node.op, ltl2ba.NotOp):
120122
buf.append("\tbool %s = !%s;" % (node, node.op.child))
123+
required_values.add(str(node.op.child))
121124

122125
for atom in self.atoms:
126+
if atom.lower() not in required_values:
127+
continue
123128
buf.append("\tbool %s = test_bit(LTL_%s, mon->atoms);" % (atom.lower(), atom))
124129

125130
buf.reverse()
@@ -135,7 +140,13 @@ def _fill_transitions(self):
135140
"ltl_possible_next_states(struct ltl_monitor *mon, unsigned int state, unsigned long *next)",
136141
"{"
137142
]
138-
buf.extend(self._fill_atom_values())
143+
144+
required_values = set()
145+
for node in self.ba:
146+
for o in sorted(node.outgoing):
147+
required_values |= o.labels
148+
149+
buf.extend(self._fill_atom_values(required_values))
139150
buf.extend([
140151
"",
141152
"\tswitch (state) {"
@@ -166,7 +177,13 @@ def _fill_start(self):
166177
"static void ltl_start(struct task_struct *task, struct ltl_monitor *mon)",
167178
"{"
168179
]
169-
buf.extend(self._fill_atom_values())
180+
181+
required_values = set()
182+
for node in self.ba:
183+
if node.init:
184+
required_values |= node.labels
185+
186+
buf.extend(self._fill_atom_values(required_values))
170187
buf.append("")
171188

172189
for node in self.ba:

0 commit comments

Comments
 (0)