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