sim: Use the canonical way of iterating over a dictionary

Instead of using a convoluted getattr call, use the conventional
iteritems() interface.

Change-Id: I6d6bbccf865f8a0e8ff0767914157a7460099b09
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/10782
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
index 0c9e738..47e6474 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -1520,11 +1520,10 @@
         yield  # make this function a (null) generator
 
     def recurseDeviceTree(self, state):
-        for child in [getattr(self, c) for c in self._children]:
+        for child in self._children.itervalues():
             for item in child: # For looping over SimObjectVectors
-                if isinstance(item, SimObject):
-                    for dt in item.generateDeviceTree(state):
-                        yield dt
+                for dt in item.generateDeviceTree(state):
+                    yield dt
 
 # Function to provide to C++ so it can look up instances based on paths
 def resolveSimObject(name):