aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorazidar2015-07-02 14:55:04 -0700
committerazidar2015-07-02 14:55:04 -0700
commita9d4b3edf92c2e366028ae940501a72444f070d7 (patch)
treeb2de559f5b688dbe705c2c16c4768250165cbdb1 /src
parentf87399045123c8bc73dabe82ecff6a9a5bdfea41 (diff)
Fixed stanza, optimize works, added a time printout
Diffstat (limited to 'src')
-rw-r--r--src/lib/stanza.zipbin3729478 -> 3684669 bytes
-rw-r--r--src/main/stanza/compilers.stanza6
-rw-r--r--src/main/stanza/ir-parser.stanza5
3 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/stanza.zip b/src/lib/stanza.zip
index 5ceb98a8..a902edd8 100644
--- a/src/lib/stanza.zip
+++ b/src/lib/stanza.zip
Binary files differ
diff --git a/src/main/stanza/compilers.stanza b/src/main/stanza/compilers.stanza
index 7b5f126c..2f6329dc 100644
--- a/src/main/stanza/compilers.stanza
+++ b/src/main/stanza/compilers.stanza
@@ -75,9 +75,15 @@ public defn run-passes (c:Circuit,ls:List<Pass>) :
println("Compiling!")
if PRINT-CIRCUITS : println("Original Circuit")
if PRINT-CIRCUITS : print(c)
+ val start-time = current-time-us()
+ var t = start-time
for p in ls do :
if PRINT-CIRCUITS : println(name(p))
c* = pass(p)(c*)
if PRINT-CIRCUITS : print(c*)
if PRINT-CIRCUITS : println-all(["Finished " name(p) "\n"])
+ val current-time = current-time-us()
+ println-all(["Time since start: " current-time - start-time])
+ println-all(["Time for this pass: " current-time - t])
+ t = current-time
println("Done!")
diff --git a/src/main/stanza/ir-parser.stanza b/src/main/stanza/ir-parser.stanza
index b511f640..dd7679cc 100644
--- a/src/main/stanza/ir-parser.stanza
+++ b/src/main/stanza/ir-parser.stanza
@@ -112,7 +112,10 @@ defsyntax firrtl :
int$ != () : FPE(form, "Expected a single integer literal here.")
;Error if not a single long integer
- long$ = (?i:#intorlong ?rest ...) when empty?(rest) : to-long(i)
+ long$ = (?i:#intorlong ?rest ...) when empty?(rest) :
+ match(i) :
+ (i:Long) : i
+ (i) : to-long(i)
long$ != () : FPE(form, "Expected a single long integer literal here.")
;Error if not a single width