changeset 9a6a02a235f1 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=9a6a02a235f1
description:
        SLICC: Remove external_type for structures
        In SLICC, in order to define a type a data type for which it should not
        generate any code, the keyword external_type is used. For those data 
types for
        which code should be generated, the keyword structure is used. This 
patch
        eliminates the use of keyword external_type for defining structures. 
structure
        key word can now have an optional attribute external, which would be 
used for
        figuring out whether or not to generate the code for this structure. 
Also, now
        structures can have functions as well data members in them.

diffstat:

 src/mem/protocol/MESI_CMP_directory-L1cache.sm  |   2 +-
 src/mem/protocol/MESI_CMP_directory-L2cache.sm  |   2 +-
 src/mem/protocol/MESI_CMP_directory-dir.sm      |   2 +-
 src/mem/protocol/MESI_CMP_directory-dma.sm      |   2 +-
 src/mem/protocol/MI_example-cache.sm            |   2 +-
 src/mem/protocol/MI_example-dir.sm              |   2 +-
 src/mem/protocol/MOESI_CMP_directory-L1cache.sm |   2 +-
 src/mem/protocol/MOESI_CMP_directory-L2cache.sm |   4 +-
 src/mem/protocol/MOESI_CMP_directory-dir.sm     |   2 +-
 src/mem/protocol/MOESI_CMP_directory-dma.sm     |   4 +-
 src/mem/protocol/MOESI_CMP_token-L1cache.sm     |   4 +-
 src/mem/protocol/MOESI_CMP_token-L2cache.sm     |   4 +-
 src/mem/protocol/MOESI_CMP_token-dir.sm         |   4 +-
 src/mem/protocol/MOESI_CMP_token-dma.sm         |   2 +-
 src/mem/protocol/MOESI_hammer-cache.sm          |   2 +-
 src/mem/protocol/MOESI_hammer-dir.sm            |   2 +-
 src/mem/protocol/RubySlicc_Exports.sm           |   2 +-
 src/mem/protocol/RubySlicc_Types.sm             |  25 +++++++++--------------
 src/mem/slicc/parser.py                         |  26 +++++-------------------
 19 files changed, 38 insertions(+), 57 deletions(-)

diffs (truncated from 388 to 300 lines):

diff -r 099771c7725d -r 9a6a02a235f1 
src/mem/protocol/MESI_CMP_directory-L1cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L1cache.sm    Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MESI_CMP_directory-L1cache.sm    Fri Mar 18 14:12:04 
2011 -0500
@@ -119,7 +119,7 @@
     int pendingAcks, default="0", desc="number of pending acks";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 
src/mem/protocol/MESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L2cache.sm    Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MESI_CMP_directory-L2cache.sm    Fri Mar 18 14:12:04 
2011 -0500
@@ -145,7 +145,7 @@
     int pendingAcks,            desc="number of pending acks for invalidates 
during writeback";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MESI_CMP_directory-dir.sm
--- a/src/mem/protocol/MESI_CMP_directory-dir.sm        Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MESI_CMP_directory-dir.sm        Fri Mar 18 14:12:04 
2011 -0500
@@ -95,7 +95,7 @@
     int Len,               desc="...";
   }
     
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);  
     void allocate(Address); 
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MESI_CMP_directory-dma.sm
--- a/src/mem/protocol/MESI_CMP_directory-dma.sm        Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MESI_CMP_directory-dma.sm        Fri Mar 18 14:12:04 
2011 -0500
@@ -20,7 +20,7 @@
     Ack,          desc="DMA write to memory completed";
   }
 
-  external_type(DMASequencer) {
+  structure(DMASequencer, external="yes") {
     void ackCallback();
     void dataCallback(DataBlock);
   }
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MI_example-cache.sm
--- a/src/mem/protocol/MI_example-cache.sm      Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/MI_example-cache.sm      Fri Mar 18 14:12:04 2011 -0500
@@ -61,7 +61,7 @@
     DataBlock DataBlk,       desc="data for the block, required for concurrent 
writebacks";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MI_example-dir.sm
--- a/src/mem/protocol/MI_example-dir.sm        Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/MI_example-dir.sm        Fri Mar 18 14:12:04 2011 -0500
@@ -66,7 +66,7 @@
     MachineID DmaRequestor, desc="DMA requestor";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 
src/mem/protocol/MOESI_CMP_directory-L1cache.sm
--- a/src/mem/protocol/MOESI_CMP_directory-L1cache.sm   Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-L1cache.sm   Fri Mar 18 14:12:04 
2011 -0500
@@ -127,7 +127,7 @@
     int NumPendingMsgs, default="0",     desc="Number of acks/data messages 
that this processor is waiting for";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external ="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 
src/mem/protocol/MOESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MOESI_CMP_directory-L2cache.sm   Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-L2cache.sm   Fri Mar 18 14:12:04 
2011 -0500
@@ -203,14 +203,14 @@
     MachineID Fwd_GetX_ID,          desc="ID of the L1 cache to forward the 
block to once we get a response";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external = "yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
     bool isPresent(Address);
   }
 
-  external_type(PerfectCacheMemory) {
+  structure(PerfectCacheMemory, external = "yes") {
     void allocate(Address);
     void deallocate(Address);
     DirEntry lookup(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_CMP_directory-dir.sm
--- a/src/mem/protocol/MOESI_CMP_directory-dir.sm       Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-dir.sm       Fri Mar 18 14:12:04 
2011 -0500
@@ -109,7 +109,7 @@
     MachineID Requestor, desc="original requestor";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external = "yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_CMP_directory-dma.sm
--- a/src/mem/protocol/MOESI_CMP_directory-dma.sm       Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-dma.sm       Fri Mar 18 14:12:04 
2011 -0500
@@ -34,12 +34,12 @@
     DataBlock DataBlk, desc="Data";
   }
 
-  external_type(DMASequencer) {
+  structure(DMASequencer, external = "yes") {
     void ackCallback();
     void dataCallback(DataBlock);
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external = "yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_CMP_token-L1cache.sm
--- a/src/mem/protocol/MOESI_CMP_token-L1cache.sm       Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_token-L1cache.sm       Fri Mar 18 14:12:04 
2011 -0500
@@ -153,14 +153,14 @@
     PrefetchBit Prefetch,         desc="Is this a prefetch request";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
     bool isPresent(Address);
   }
 
-  external_type(PersistentTable) {
+  structure(PersistentTable, external="yes") {
     void persistentRequestLock(Address, MachineID, AccessType);
     void persistentRequestUnlock(Address, MachineID);
     bool okToIssueStarving(Address, MachineID);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_CMP_token-L2cache.sm
--- a/src/mem/protocol/MOESI_CMP_token-L2cache.sm       Fri Mar 18 14:12:03 
2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_token-L2cache.sm       Fri Mar 18 14:12:04 
2011 -0500
@@ -127,14 +127,14 @@
     bool exclusive, default="false", desc="if local exclusive is likely";
   }
 
-  external_type(PerfectCacheMemory) {
+  structure(PerfectCacheMemory, external="yes") {
     void allocate(Address);
     void deallocate(Address);
     DirEntry lookup(Address);
     bool isTagPresent(Address);
   }
 
-  external_type(PersistentTable) {
+  structure(PersistentTable, external="yes") {
     void persistentRequestLock(Address, MachineID, AccessType);
     void persistentRequestUnlock(Address, MachineID);
     MachineID findSmallest(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_CMP_token-dir.sm
--- a/src/mem/protocol/MOESI_CMP_token-dir.sm   Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_token-dir.sm   Fri Mar 18 14:12:04 2011 -0500
@@ -122,7 +122,7 @@
     Set Sharers,                   desc="Probable sharers of the line.  More 
accurately, the set of processors who need to see a GetX";
   }
 
-  external_type(PersistentTable) {
+  structure(PersistentTable, external="yes") {
     void persistentRequestLock(Address, MachineID, AccessType);
     void persistentRequestUnlock(Address, MachineID);
     bool okToIssueStarving(Address, MachineID);
@@ -145,7 +145,7 @@
     bool WentPersistent,   desc="Did the DMA request require a persistent 
request";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_CMP_token-dma.sm
--- a/src/mem/protocol/MOESI_CMP_token-dma.sm   Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/MOESI_CMP_token-dma.sm   Fri Mar 18 14:12:04 2011 -0500
@@ -48,7 +48,7 @@
     Ack,          desc="DMA write to memory completed";
   }
 
-  external_type(DMASequencer) {
+  structure(DMASequencer, external="yes") {
     void ackCallback();
     void dataCallback(DataBlock);
   }
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_hammer-cache.sm
--- a/src/mem/protocol/MOESI_hammer-cache.sm    Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/MOESI_hammer-cache.sm    Fri Mar 18 14:12:04 2011 -0500
@@ -145,7 +145,7 @@
     Time FirstResponseTime, default="0", desc="the time the first response was 
received";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/MOESI_hammer-dir.sm
--- a/src/mem/protocol/MOESI_hammer-dir.sm      Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/MOESI_hammer-dir.sm      Fri Mar 18 14:12:04 2011 -0500
@@ -162,7 +162,7 @@
     bool Owned, default="false", desc="Indicates whether a cache has indicated 
it is currently a sharer";
   }
 
-  external_type(TBETable) {
+  structure(TBETable, external="yes") {
     TBE lookup(Address);
     void allocate(Address);
     void deallocate(Address);
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/RubySlicc_Exports.sm
--- a/src/mem/protocol/RubySlicc_Exports.sm     Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/RubySlicc_Exports.sm     Fri Mar 18 14:12:04 2011 -0500
@@ -39,7 +39,7 @@
 external_type(uint64, primitive="yes");
 external_type(Time, primitive="yes", default="0");
 external_type(Address);
-external_type(DataBlock, desc="..."){
+structure(DataBlock, external = "yes", desc="..."){
   void clear();
   void copyPartial(DataBlock, int, int);
 }
diff -r 099771c7725d -r 9a6a02a235f1 src/mem/protocol/RubySlicc_Types.sm
--- a/src/mem/protocol/RubySlicc_Types.sm       Fri Mar 18 14:12:03 2011 -0500
+++ b/src/mem/protocol/RubySlicc_Types.sm       Fri Mar 18 14:12:04 2011 -0500
@@ -40,7 +40,7 @@
 
 external_type(OutPort, primitive="yes");
 
-external_type(InPort, primitive="yes") {
+structure(InPort, external = "yes", primitive="yes") {
   bool isReady();
   void dequeue();
   int dequeue_getDelayCycles();
@@ -53,7 +53,7 @@
 
 MessageBuffer getMandatoryQueue(int core_id);
 
-external_type(Set, non_obj="yes") {
+structure (Set, external = "yes", non_obj="yes") {
   void setSize(int);
   void add(NodeID);
   void addSet(Set);
@@ -70,7 +70,7 @@
   NodeID smallestElement();
 }
 
-external_type(NetDest, non_obj="yes") {
+structure (NetDest, external = "yes", non_obj="yes") {
   void setSize(int);
   void setSize(int, int);
   void add(NodeID);
@@ -98,7 +98,7 @@
   MachineID smallestElement(MachineType);
 }
 
-external_type(Sequencer) {
+structure (Sequencer, external = "yes") {
   void readCallback(Address, DataBlock);
   void readCallback(Address, GenericMachineType, DataBlock);
   void readCallback(Address, GenericMachineType, DataBlock, Time, Time, Time);
@@ -111,7 +111,7 @@
 
 external_type(AbstractEntry, primitive="yes");
 
-external_type(DirectoryMemory) {
+structure (DirectoryMemory, external = "yes") {
   AbstractEntry lookup(Address);
   bool isPresent(Address);
   void invalidateBlock(Address);
@@ -119,7 +119,7 @@
 
 external_type(AbstractCacheEntry, primitive="yes");
 
-external_type(CacheMemory) {
+structure (CacheMemory, external = "yes") {
   bool cacheAvail(Address);
   Address cacheProbe(Address);
   AbstractCacheEntry allocate(Address, AbstractCacheEntry);
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to