changeset afdcebd314be in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=afdcebd314be
description:
        ruby: slicc: remove support for single machine, multiple types

        This patch is imported from reviewboard patch 2550 by Nilay.
        It was possible to specify multiple machine types with a single state 
machine.
        This seems unnecessary and is being removed.

diffstat:

 src/mem/protocol/MOESI_hammer-cache.sm |   2 +-
 src/mem/slicc/ast/MachineAST.py        |  23 ++++++++---------------
 src/mem/slicc/parser.py                |   4 ++--
 3 files changed, 11 insertions(+), 18 deletions(-)

diffs (72 lines):

diff -r 953f7d1cc9e3 -r afdcebd314be src/mem/protocol/MOESI_hammer-cache.sm
--- a/src/mem/protocol/MOESI_hammer-cache.sm    Wed Dec 30 11:18:44 2015 -0500
+++ b/src/mem/protocol/MOESI_hammer-cache.sm    Mon Jul 20 09:15:18 2015 -0500
@@ -33,7 +33,7 @@
  *          Brad Beckmann
  */
 
-machine({L1Cache, L2Cache}, "AMD Hammer-like protocol")
+machine(L1Cache, "AMD Hammer-like protocol")
     : Sequencer * sequencer;
       CacheMemory * L1Icache;
       CacheMemory * L1Dcache;
diff -r 953f7d1cc9e3 -r afdcebd314be src/mem/slicc/ast/MachineAST.py
--- a/src/mem/slicc/ast/MachineAST.py   Wed Dec 30 11:18:44 2015 -0500
+++ b/src/mem/slicc/ast/MachineAST.py   Mon Jul 20 09:15:18 2015 -0500
@@ -29,11 +29,10 @@
 from slicc.symbols import StateMachine, Type
 
 class MachineAST(DeclAST):
-    def __init__(self, slicc, idents, pairs_ast, config_parameters, decls):
+    def __init__(self, slicc, ident, pairs_ast, config_parameters, decls):
         super(MachineAST, self).__init__(slicc, pairs_ast)
 
-        self.ident = idents[0]
-        self.machine_types = idents
+        self.ident = ident
         self.pairs_ast = pairs_ast
         self.config_parameters = config_parameters
         self.decls = decls
@@ -71,19 +70,13 @@
         self.symtab.popFrame()
 
     def findMachines(self):
-        # Add to MachineType enumeration
-        for mtype in self.machine_types:
-            machine_type = self.symtab.find("MachineType", Type)
-            pairs = self.pairs_ast.pairs
+        mtype = self.ident
+        machine_type = self.symtab.find("MachineType", Type)
+        pairs = self.pairs_ast.pairs
 
-            if mtype == self.ident:
-                pairs["Primary"] = True
-            else:
-                pairs["Primary"] = False
-
-            if not machine_type.addEnum(mtype, pairs):
-                self.error("Duplicate machine name: %s:%s" % (
-                            machine_type, mtype))
+        pairs["Primary"] = True
+        if not machine_type.addEnum(mtype, pairs):
+            self.error("Duplicate machine name: %s:%s" % (machine_type, mtype))
 
         # Generate code for all the internal decls
         self.decls.findMachines()
diff -r 953f7d1cc9e3 -r afdcebd314be src/mem/slicc/parser.py
--- a/src/mem/slicc/parser.py   Wed Dec 30 11:18:44 2015 -0500
+++ b/src/mem/slicc/parser.py   Mon Jul 20 09:15:18 2015 -0500
@@ -259,11 +259,11 @@
         p[0] = self.parse_file(filename)
 
     def p_decl__machine0(self, p):
-        "decl : MACHINE '(' idents ')' ':' obj_decls '{' decls '}'"
+        "decl : MACHINE '(' ident ')' ':' obj_decls '{' decls '}'"
         p[0] = ast.MachineAST(self, p[3], [], p[7], p[9])
 
     def p_decl__machine1(self, p):
-        "decl : MACHINE '(' idents pairs ')' ':' obj_decls '{' decls '}'"
+        "decl : MACHINE '(' ident pairs ')' ':' obj_decls '{' decls '}'"
         p[0] = ast.MachineAST(self, p[3], p[4], p[7], p[9])
 
     def p_decl__action(self, p):
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to