changeset 435179113834 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=435179113834
description:
        SLICC: Put functions of a controller in its .cc file
        Currently, functions associated with a controller go into separate 
files.
        This patch puts all the functions in the controller's .cc file. This 
should
        hopefully take away some time from compilation.

diffstat:

 src/mem/slicc/ast/FuncDeclAST.py      |   9 +--------
 src/mem/slicc/symbols/Func.py         |  22 +++++-----------------
 src/mem/slicc/symbols/StateMachine.py |   6 +++---
 3 files changed, 9 insertions(+), 28 deletions(-)

diffs (85 lines):

diff -r 4a6c166f61f7 -r 435179113834 src/mem/slicc/ast/FuncDeclAST.py
--- a/src/mem/slicc/ast/FuncDeclAST.py  Tue Jul 26 12:20:22 2011 -0500
+++ b/src/mem/slicc/ast/FuncDeclAST.py  Wed Jul 27 20:20:53 2011 -0500
@@ -41,14 +41,7 @@
         return "[FuncDecl: %s]" % self.ident
 
     def files(self, parent=None):
-        if "external" in self or self.statements is None:
-            return set()
-
-        if parent:
-            ident = "%s_%s" % (parent, self.ident)
-        else:
-            ident = self.ident
-        return set(("%s.cc" % ident,))
+        return set()
 
     def generate(self):
         types = []
diff -r 4a6c166f61f7 -r 435179113834 src/mem/slicc/symbols/Func.py
--- a/src/mem/slicc/symbols/Func.py     Tue Jul 26 12:20:22 2011 -0500
+++ b/src/mem/slicc/symbols/Func.py     Wed Jul 27 20:20:53 2011 -0500
@@ -64,24 +64,15 @@
                                ", ".join(self.param_strings))
 
     def writeCodeFiles(self, path):
+        return
+
+    def generateCode(self):
         '''This write a function of object Chip'''
         if "external" in self:
-            return
+            return ""
 
         code = self.symtab.codeFormatter()
 
-        # Header
-        code('''
-/** Auto generated C++ code started by $__file__:$__line__ */
-
-#include "debug/RubySlicc.hh"
-#include "mem/protocol/Types.hh"
-''')
-
-        if self.isInternalMachineFunc:
-            code('#include "mem/protocol/${{self.machineStr}}_Controller.hh"')
-
-        code('using namespace std;')
         # Generate function header
         void_type = self.symtab.find("void", Type)
         return_type = self.return_type.c_ident
@@ -104,9 +95,6 @@
 ${{self.body}}
 }
 ''')
-        if self.isInternalMachineFunc:
-            code.write(path, "%s_%s.cc" % (self.machineStr,self.c_ident))
-        else:
-            code.write(path, "%s.cc" % self.c_ident)
+        return str(code)
 
 __all__ = [ "Func" ]
diff -r 4a6c166f61f7 -r 435179113834 src/mem/slicc/symbols/StateMachine.py
--- a/src/mem/slicc/symbols/StateMachine.py     Tue Jul 26 12:20:22 2011 -0500
+++ b/src/mem/slicc/symbols/StateMachine.py     Wed Jul 27 20:20:53 2011 -0500
@@ -168,9 +168,6 @@
         self.printProfileDumperCC(path)
         self.printProfileDumperHH(path)
 
-        for func in self.functions:
-            func.writeCodeFiles(path)
-
     def printControllerPython(self, path):
         code = self.symtab.codeFormatter()
         ident = self.ident
@@ -945,6 +942,9 @@
 }
 
 ''')
+        for func in self.functions:
+            code(func.generateCode())
+
         code.write(path, "%s.cc" % c_ident)
 
     def printCWakeup(self, path):
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to