aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/firrtl-test-main.stanza
diff options
context:
space:
mode:
authorazidar2015-05-29 11:34:51 -0700
committerazidar2015-05-29 11:34:51 -0700
commitca49cb05f9e2fbeac1d0c722eb7d342f74508b7e (patch)
treef8fb73ac66b7d5a50c1ab56ec2b2c8b91f71dd0b /src/main/stanza/firrtl-test-main.stanza
parentb44b49e6a6589add30b5b1d89d85f2e20432a515 (diff)
Added custom pass. Does not correctly run, stanza just spins. Requires debugging.
Diffstat (limited to 'src/main/stanza/firrtl-test-main.stanza')
-rw-r--r--src/main/stanza/firrtl-test-main.stanza13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/stanza/firrtl-test-main.stanza b/src/main/stanza/firrtl-test-main.stanza
index 5a7e593d..1a8f6780 100644
--- a/src/main/stanza/firrtl-test-main.stanza
+++ b/src/main/stanza/firrtl-test-main.stanza
@@ -13,6 +13,10 @@
#include("flo.stanza")
#include("verilog.stanza")
+;Custom Packages
+#include("custom-passes.stanza")
+#include("custom-compiler.stanza")
+
defpackage firrtl-main :
import core
import verse
@@ -22,6 +26,9 @@ defpackage firrtl-main :
import stz/parser
import firrtl/ir-utils
import firrtl/compiler
+ ;Custom Packages
+ import firrtl/custom-passes
+ import firrtl/custom-compiler
defn set-printvars! (p:List<Char>) :
if contains(p,'t') : PRINT-TYPES = true
@@ -42,11 +49,13 @@ defn get-passes (pass-names:List<String>) -> List<Pass> :
p as Pass
defn main () :
+ println("HERE")
val args = commandline-arguments()
var input = false
var output = false
var compiler = false
val pass-names = Vector<String>()
+ val pass-args = Vector<String>()
var printvars = ""
for (s in args, i in 0 to false) do :
if s == "-i" : input = args[i + 1]
@@ -54,7 +63,9 @@ defn main () :
if s == "-x" : add(pass-names,args[i + 1])
if s == "-X" : compiler = args[i + 1]
if s == "-p" : printvars = args[i + 1]
+ if s == "-s" : add(pass-args,args[i + 1])
+ println("THERE")
if input == false :
error("No input file provided. Use -i flag.")
if output == false :
@@ -66,12 +77,14 @@ defn main () :
val c = parse-firrtl(lexed)
set-printvars!(to-list(printvars))
+ println("EVERYWHERE")
if compiler == false :
run-passes(c,get-passes(to-list(pass-names)))
else :
switch {_ == compiler} :
"flo" : run-passes(c,StandardFlo(output as String))
"verilog" : run-passes(c,StandardVerilog(output as String))
+ "verilute" : run-passes(c,InstrumentedVerilog(output as String,to-list $ pass-args))
else : error("Invalid compiler flag")
main()