diff --git a/tools/llvmc/CompilerDriver.cpp b/tools/llvmc/CompilerDriver.cpp
index e176ee6..c75c954 100644
--- a/tools/llvmc/CompilerDriver.cpp
+++ b/tools/llvmc/CompilerDriver.cpp
@@ -212,20 +212,20 @@
   StringVector::iterator PI = pat->args.begin();
   StringVector::iterator PE = pat->args.end();
   while (PI != PE) {
-    if ((*PI)[0] == '@') {
-      if (*PI == "@in@") {
+    if ((*PI)[0] == '%') {
+      if (*PI == "%in%") {
         action->args.push_back(input);
-      } else if (*PI == "@out@") {
+      } else if (*PI == "%out%") {
         action->args.push_back(output);
-      } else if (*PI == "@time@") {
+      } else if (*PI == "%time%") {
         if (timePasses)
           action->args.push_back("-time-passes");
-      } else if (*PI == "@stats@") {
+      } else if (*PI == "%stats%") {
         if (showStats)
           action->args.push_back("-stats");
-      } else if (*PI == "@target@") {
+      } else if (*PI == "%target%") {
         // FIXME: Ignore for now
-      } else if (*PI == "@opt@") {
+      } else if (*PI == "%opt%") {
         if (!emitRawCode) {
           if (pat->isSet(GROKS_DASH_O)) {
             if (optLevel != OPT_NONE) {
diff --git a/tools/llvmc/ConfigLexer.l b/tools/llvmc/ConfigLexer.l
index 70c0fbf..b9c07a4 100644
--- a/tools/llvmc/ConfigLexer.l
+++ b/tools/llvmc/ConfigLexer.l
@@ -76,7 +76,7 @@
 %}
 
 ASSEMBLER       assembler|Assembler|ASSEMBLER
-BadSubst        \@[^iots][a-zA-Z]\@
+BadSubst        \%[^iots][a-zA-Z]\%
 COMMAND         command|Command|COMMAND
 Comment         \#[^\n]*\n
 NewLine         \n
@@ -93,7 +93,7 @@
 OPT5            opt5|Opt5|OPT5
 OPTIMIZER       optimizer|Optimizer|OPTIMIZER
 OPTIMIZES       optimizes|Optimizes|OPTIMIZES
-Option          [-A-Za-z0-9_:%+/\\|,][-A-Za-z0-9_:%+/\\|,@]*
+Option          [-A-Za-z0-9_:%+/\\|,][-A-Za-z0-9_:+/\\|,@]*
 OUTPUT_IS_ASM   output_is_asm|Output_Is_Asm|OUTPUT_IS_ASM
 PREPROCESSES    preprocesses|PreProcesses|PREPROCESSES
 PREPROCESSOR    preprocessor|PreProcessor|PREPROCESSOR
@@ -154,12 +154,12 @@
 {OPT4}          { return handleContext("opt4",OPT4); }
 {OPT5}          { return handleContext("opt5",OPT5); }
 
-@in@            { return handleSubstitution(IN_SUBST); }
-@out@           { return handleSubstitution(OUT_SUBST); }
-@time@          { return handleSubstitution(TIME_SUBST); }
-@stats@         { return handleSubstitution(STATS_SUBST); }
-@opt@           { return handleSubstitution(OPT_SUBST); }
-@target@        { return handleSubstitution(TARGET_SUBST); }
+%in%            { return handleSubstitution(IN_SUBST); }
+%out%           { return handleSubstitution(OUT_SUBST); }
+%time%          { return handleSubstitution(TIME_SUBST); }
+%stats%         { return handleSubstitution(STATS_SUBST); }
+%opt%           { return handleSubstitution(OPT_SUBST); }
+%target%        { return handleSubstitution(TARGET_SUBST); }
 {BadSubst}      { YY_FATAL_ERROR("Invalid substitution token"); }
 {True}          { return handleBoolean(TRUETOK); }
 {On}            { return handleBoolean(TRUETOK); }
diff --git a/tools/llvmc/Configuration.cpp b/tools/llvmc/Configuration.cpp
index 1e0e681..a381d56 100644
--- a/tools/llvmc/Configuration.cpp
+++ b/tools/llvmc/Configuration.cpp
@@ -155,12 +155,12 @@
 
     bool parseSubstitution(CompilerDriver::StringVector& optList) {
       switch (token) {
-        case IN_SUBST:          optList.push_back("@in@"); break;
-        case OUT_SUBST:         optList.push_back("@out@"); break;
-        case TIME_SUBST:        optList.push_back("@time@"); break;
-        case STATS_SUBST:       optList.push_back("@stats@"); break;
-        case OPT_SUBST:         optList.push_back("@opt@"); break;
-        case TARGET_SUBST:      optList.push_back("@target@"); break;
+        case IN_SUBST:          optList.push_back("%in%"); break;
+        case OUT_SUBST:         optList.push_back("%out%"); break;
+        case TIME_SUBST:        optList.push_back("%time%"); break;
+        case STATS_SUBST:       optList.push_back("%stats%"); break;
+        case OPT_SUBST:         optList.push_back("%opt%"); break;
+        case TARGET_SUBST:      optList.push_back("%target%"); break;
         default:
           return false;
       }
diff --git a/tools/llvmc/ll b/tools/llvmc/ll
index 56736f3..3811734 100644
--- a/tools/llvmc/ll
+++ b/tools/llvmc/ll
@@ -2,13 +2,13 @@
   lang.name=LLVM Assembly
   preprocessor.command=
   preprocessor.required=false
-  translator.command=llvm-as @in@ -o @out@
+  translator.command=llvm-as %in% -o %out%
   translator.groks_dash_O=no
   translator.optimizes=no
   translator.preprocesses=true
   translator.required=TRUE
-  optimizer.command=opt @in@ -o @out@
+  optimizer.command=opt %in% -o %out%
   optimizer.groks_dash_O=no
   optimizer.groks_optimization=yes
-  assembler.command=llc @in@ -o @out@
-  linker.command=llvm-link @in@ -o @out@
+  assembler.command=llc %in% -o %out%
+  linker.command=llvm-link %in% -o %out%
diff --git a/tools/llvmc/st b/tools/llvmc/st
index 93d5c5b..7c8d1ab 100644
--- a/tools/llvmc/st
+++ b/tools/llvmc/st
@@ -5,12 +5,12 @@
 ##########################################################
   lang.name=Stacker 
   lang.opt1=-simplifycfg -instcombine -mem2reg
-  lang.opt2=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp
-  lang.opt3=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp \
+  lang.opt2=-simplifycfg -instcombine -mem2reg -load-vn -gcse -dse -scalarrepl -sccp
+  lang.opt3=-simplifycfg -instcombine -mem2reg -load-vn -gcse -dse -scalarrepl -sccp \
   -branch-combine -adce -globaldce -inline -licm -pre
-  lang.opt4=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp \
+  lang.opt4=-simplifycfg -instcombine -mem2reg -load-vn -gcse -dse -scalarrepl -sccp \
   -ipconstprop -branch-combine -adce -globaldce -inline -licm -pre
-  lang.opt5=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp \
+  lang.opt5=-simplifycfg -instcombine -mem2reg --load-vn -gcse -dse scalarrepl -sccp \
   -ipconstprop -branch-combine -adce -globaldce -inline -licm -pre \
   -block-placement
 
@@ -20,7 +20,7 @@
 
   # Stacker doesn't have a preprocessor but the following
   # allows the -E option to be supported
-  preprocessor.command=cp @in@ @out@
+  preprocessor.command=cp %in% %out%
   preprocessor.required=false
 
 ##########################################################
@@ -29,7 +29,7 @@
 
   # To compile stacker source, we just run the stacker
   # compiler with a default stack size of 2048 entries.
-  translator.command=stkrc -s 2048 @in@ -o @out@ @time@ @stats@
+  translator.command=stkrc -s 2048 %in% -o %out% %time% %stats%
 
   # stkrc doesn't preprocess but we set this to true so
   # that we don't run the cp command by default.
@@ -49,7 +49,7 @@
 ##########################################################
   
   # For optimization, we use the LLVM "opt" program
-  optimizer.command=opt @in@ -o @out@ @opt@ @time@ @stats@
+  optimizer.command=opt %in% -o %out% %opt% %time% %stats%
 
   # opt doesn't (yet) grok -On
   optimizer.groks_dash_O=no
@@ -63,10 +63,11 @@
 ##########################################################
 # Assembler definitions
 ##########################################################
-  assembler.command=llc @in@ -o @out@ @target@ "-regalloc=linearscan" \
-  @time@ @stats@
+  assembler.command=llc %in% -o %out% %target% "-regalloc=linearscan" \
+  %time% %stats%
 
 ##########################################################
 # Linker definitions
 ##########################################################
-  linker.command=gccld @in@ -o @out@ -lstkr_runtime
+  linker.libs=stkr_runtime
+  linker.paths=
