Skip to content

Commit d7f9af4

Browse files
author
whitequark
committedJul 29, 2015
Fix accidentally quadratic code in compiler.ir.Function._add_name.
1 parent 6d8d0ff commit d7f9af4

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed
 

Diff for: ‎artiq/compiler/ir.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -396,20 +396,22 @@ class Function:
396396
def __init__(self, typ, name, arguments):
397397
self.type, self.name = typ, name
398398
self.names, self.arguments, self.basic_blocks = set(), [], []
399+
self.next_name = 1
399400
self.set_arguments(arguments)
400401
self.is_internal = False
401402

402403
def _remove_name(self, name):
403404
self.names.remove(name)
404405

405406
def _add_name(self, base_name):
406-
name, counter = base_name, 1
407-
while name in self.names or name == "":
408-
if base_name == "":
409-
name = "v.{}".format(str(counter))
410-
else:
411-
name = "{}.{}".format(name, counter)
412-
counter += 1
407+
if base_name == "":
408+
name = "v.{}".format(self.next_name)
409+
self.next_name += 1
410+
elif base_name in self.names:
411+
name = "{}.{}".format(base_name, self.next_name)
412+
self.next_name += 1
413+
else:
414+
name = base_name
413415

414416
self.names.add(name)
415417
return name

0 commit comments

Comments
 (0)
Please sign in to comment.