python: Make iterator handling Python 3 compatible

Many functions that used to return lists (e.g., dict.items()) now
return iterators and their iterator counterparts (e.g.,
dict.iteritems()) have been removed. Switch calls to the Python 2.7
iterator methods to use the Python 3 equivalent and add explicit list
conversions where necessary.

Change-Id: I0c18114955af8f4932d81fb689a0adb939dafaba
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15992
Reviewed-by: Juha Jäykkä <juha.jaykka@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
Andreas Sandberg
2019-01-26 09:19:22 +00:00
parent 8e5d168332
commit 7d71f6641f
18 changed files with 74 additions and 97 deletions

View File

@@ -49,7 +49,7 @@ class SimpleNetwork(RubyNetwork):
for link in self.int_links:
# The network needs number_of_virtual_networks buffers per
# int_link port
for i in xrange(self.number_of_virtual_networks):
for i in range(int(self.number_of_virtual_networks)):
network_buffers.append(MessageBuffer(ordered = True))
network_buffers.append(MessageBuffer(ordered = True))
self.int_link_buffers = network_buffers
@@ -61,14 +61,14 @@ class SimpleNetwork(RubyNetwork):
# unidirectional internal link
for link in self.int_links:
if link.dst_node == router:
for i in xrange(self.number_of_virtual_networks):
for i in range(int(self.number_of_virtual_networks)):
router_buffers.append(MessageBuffer(ordered = True))
# Add message buffers to routers for each external link connection
for link in self.ext_links:
# Routers can only be int_nodes on ext_links
if link.int_node in self.routers:
for i in xrange(self.number_of_virtual_networks):
for i in range(int(self.number_of_virtual_networks)):
router_buffers.append(MessageBuffer(ordered = True))
router.port_buffers = router_buffers

View File

@@ -724,7 +724,7 @@ ${{self.c_ident}}_base_number(const ${{self.c_ident}}& obj)
# For each field
code.indent()
code(' case ${{self.c_ident}}_NUM:')
for enum in reversed(self.enums.values()):
for enum in reversed(list(self.enums.values())):
# Check if there is a defined machine with this type
if enum.primary:
code(' base += ${{enum.ident}}_Controller::getNumControllers();')