From 59bb37f5da6d849ef736124720ffa981268ef559 Mon Sep 17 00:00:00 2001
From: Pierre Wilke <pierre.wilke@centralesupelec.fr>
Date: Wed, 10 Feb 2021 11:42:14 +0100
Subject: [PATCH] Update skeleton

---
 .gitignore                                    |  50 +--
 Makefile                                      |   8 +-
 Sujet.pdf                                     | Bin 1549653 -> 1550813 bytes
 alpaga/ml_parser_generator.ml                 |   3 +-
 configure                                     |  13 +-
 ldb/ldb.html                                  |   2 +-
 ldb/ldb.js                                    |   4 +-
 ldb/style.css                                 |   2 +-
 runtime/lib32.s                               |   3 +-
 runtime/lib64.s                               |   5 +-
 src/Makefile                                  |   6 +-
 src/archi.ml                                  |  78 ++--
 src/cfg_constprop.ml                          |  10 +
 src/cfg_dead_assign.ml                        |  10 +
 src/cfg_gen.ml                                |  12 +
 src/cfg_nop_elim.ml                           |  11 +
 src/elang_gen.ml                              |  13 +
 src/lexer_generator.ml                        |   7 +-
 src/linear_dse.ml                             |  12 +
 src/linear_gen.ml                             |  12 +-
 src/ltl.ml                                    |   4 +-
 src/ltl_gen.ml                                |  44 ++-
 src/ltl_print.ml                              |   4 +-
 src/ltl_run.ml                                |  10 +-
 src/main.ml                                   | 334 +++++-------------
 src/options.ml                                |   4 +
 src/parser.ml                                 |  13 +
 src/prog.ml                                   |  32 ++
 src/report.ml                                 |  87 +++++
 src/riscv.ml                                  | 196 ++++------
 src/rtl_gen.ml                                |   9 +
 src/test_lexer.ml                             |  82 +++++
 src/tokenize.ml                               |  23 ++
 src/utils.ml                                  |  32 +-
 tests/Makefile                                |  12 +-
 tests/funcall/argswap.e.expect_lexer          |   8 +-
 tests/funcall/print_and_fun.e.expect_lexer    |   4 +-
 tests/globals/arrayptr.e                      |  24 ++
 tests/globals/arrayptr.e.expect_14_12_3_8_12  |   1 +
 tests/globals/arrayptr.e.expect_1_2_3         |   1 +
 tests/globals/arrayptr.e.expect_lexer         | 150 ++++++++
 tests/globals/globtab2.e                      |  43 +++
 tests/globals/globtab2.e.expect_14_12_3_8_12  |   1 +
 tests/globals/globtab2.e.expect_1_2_3         |   1 +
 tests/globals/globtab2.e.expect_lexer         | 217 ++++++++++++
 tests/invader/{constants.s => constants.S}    |   0
 tests/invader/crt.S                           |   1 +
 tests/invader/crt.s                           |   1 -
 tests/invader/{crtm.s => crtm.S}              |   4 +-
 tests/invader/include/font.h                  |   2 +-
 tests/invader/{macros.s => macros.S}          |   0
 tests/ptr/weird-ptr.e                         |  11 +
 tests/ptr/weird-ptr.e.expect_14_12_3_8_12     |   1 +
 tests/ptr/weird-ptr.e.expect_1_2_3            |   1 +
 tests/ptr/weird-ptr.e.expect_lexer            |  52 +++
 tests/real_args/show_args.e                   |  15 -
 tests/strings/rot13.e                         |  44 ---
 tests/strings/string.e                        |  13 -
 tests/strings/stringlit.e                     |   5 -
 tests/strings/stringlit2.e                    |   4 -
 tests/strings/stringlit3.e                    |   6 -
 tests/strings/stringtab.e                     |  10 -
 tests/structs/structtab.e                     |   2 +-
 tests/structs/structtab.e.expect_14_12_3_8_12 |   1 +
 tests/structs/structtab.e.expect_1_2_3        |   1 +
 tests/structs/structtab.e.expect_lexer        |  55 +++
 tests/test.py                                 |  22 +-
 tests/type_funcall/argswap-simple.e           |   9 +
 .../argswap-simple.e.expect_14_12_3_8_12      |   1 +
 .../argswap-simple.e.expect_1_2_3             |   1 +
 .../argswap-simple.e.expect_lexer             |  57 +++
 71 files changed, 1304 insertions(+), 612 deletions(-)
 create mode 100644 src/tokenize.ml
 create mode 100644 tests/globals/arrayptr.e
 create mode 100644 tests/globals/arrayptr.e.expect_14_12_3_8_12
 create mode 100644 tests/globals/arrayptr.e.expect_1_2_3
 create mode 100644 tests/globals/arrayptr.e.expect_lexer
 create mode 100644 tests/globals/globtab2.e
 create mode 100644 tests/globals/globtab2.e.expect_14_12_3_8_12
 create mode 100644 tests/globals/globtab2.e.expect_1_2_3
 create mode 100644 tests/globals/globtab2.e.expect_lexer
 rename tests/invader/{constants.s => constants.S} (100%)
 create mode 100644 tests/invader/crt.S
 delete mode 100644 tests/invader/crt.s
 rename tests/invader/{crtm.s => crtm.S} (96%)
 rename tests/invader/{macros.s => macros.S} (100%)
 create mode 100644 tests/ptr/weird-ptr.e
 create mode 100644 tests/ptr/weird-ptr.e.expect_14_12_3_8_12
 create mode 100644 tests/ptr/weird-ptr.e.expect_1_2_3
 create mode 100644 tests/ptr/weird-ptr.e.expect_lexer
 delete mode 100644 tests/real_args/show_args.e
 delete mode 100644 tests/strings/rot13.e
 delete mode 100644 tests/strings/string.e
 delete mode 100644 tests/strings/stringlit.e
 delete mode 100644 tests/strings/stringlit2.e
 delete mode 100644 tests/strings/stringlit3.e
 delete mode 100644 tests/strings/stringtab.e
 create mode 100644 tests/structs/structtab.e.expect_14_12_3_8_12
 create mode 100644 tests/structs/structtab.e.expect_1_2_3
 create mode 100644 tests/structs/structtab.e.expect_lexer
 create mode 100644 tests/type_funcall/argswap-simple.e
 create mode 100644 tests/type_funcall/argswap-simple.e.expect_14_12_3_8_12
 create mode 100644 tests/type_funcall/argswap-simple.e.expect_1_2_3
 create mode 100644 tests/type_funcall/argswap-simple.e.expect_lexer

diff --git a/.gitignore b/.gitignore
index e0a90a6..4276585 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,53 +1,9 @@
-tests/**/*.ast
-tests/**/*.cfg
-tests/**/*.cfg0
-tests/**/*.cfg1
-tests/**/*.cfg2
-tests/**/*.cfg3
-tests/**/*.e.dump
-tests/**/*.e.html
-tests/**/*.exe
-tests/**/*.json
-tests/**/*.lex
-tests/**/*.linear
-tests/**/*.linear1
-tests/**/*.ltl
-tests/**/*.rig
-tests/**/*.rtl
-tests/**/*.s
-tests/**/*.svg
-tests/results.html
-tests/__pycache__
 src/_build
-alpaga/_build
 grammar.html
 src/generated_parser.ml
 src/config.ml
 **/*.native
-alpaga/ml_parser_generator
-alpaga/alpaga
-alpaga/ml_parser_generator.native
-tykernel/*.ast
-tykernel/*.cfg
-tykernel/*.cfg0
-tykernel/*.cfg1
-tykernel/*.cfg2
-tykernel/*.e.dump
-tykernel/*.e.html
-tykernel/*.exe
-tykernel/*.lex
-tykernel/*.linear
-tykernel/*.linear1
-tykernel/*.ltl
-tykernel/*.rtl
-tykernel/*.s
-tykernel/*.svg
 skeleton
-sujet/_minted-tp
-sujet/*.aux
-sujet/*.fdb_latexmk
-sujet/*.fls
-sujet/*.log
-sujet/*.out
-sujet/*.pdf
-sujet/*.synctex.gz
+src/.vscode/
+.vscode/
+Makefile.config
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 1cac380..413254d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,19 @@
 all: main.native
 
 .PHONY: main.native
-main.native:
+
+src/config.ml: configure
+	./configure
+
+main.native: src/config.ml
 	make -C alpaga
 	./alpaga/alpaga \
 			-g expr_grammar_action.g \
 			-pml src/generated_parser.ml \
 			-t grammar.html
-	./configure
 	make -C src
 	ln -sf src/main.native main.native
 
-
 clean:
 	make -C alpaga clean
 	rm -f src/generated_parser.ml
diff --git a/Sujet.pdf b/Sujet.pdf
index 3f1222d0362a2e74c1a5e13ded8a8368fb4d15e8..c0f06c0fb79bd3db8474acf83339bd618ec2783a 100644
GIT binary patch
delta 80682
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
CZgI~5

delta 79309
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
OHZ?Rg3MC~)PeuwSUh3Td

diff --git a/alpaga/ml_parser_generator.ml b/alpaga/ml_parser_generator.ml
index 01a8a70..4b0c6d8 100644
--- a/alpaga/ml_parser_generator.ml
+++ b/alpaga/ml_parser_generator.ml
@@ -68,7 +68,8 @@ let make_nt (table: string*string -> lltype list) (toks,nts,rules) oc n () =
         ) (a::r);
       Printf.fprintf oc "Printf.sprintf \"}\" ^ \n"
   end;
-  Printf.fprintf oc "  Printf.sprintf \" but got '%%s' instead.\\n\" got\n";
+  Printf.fprintf oc "  Printf.sprintf \" but got '%%s' instead.\\n\" got\n ^ ";
+  Printf.fprintf oc "  Printf.sprintf \" '%%s' \\n\" (String.concat \",\" (List.map (fun (x, _) -> string_of_symbol x) (List.take 10 tokens)))\n";
   Printf.fprintf oc "  )";
   Printf.fprintf oc "\n  end\n\n"
 
diff --git a/configure b/configure
index 8e49ee8..42d40d9 100755
--- a/configure
+++ b/configure
@@ -2,5 +2,16 @@
 
 RUNTIME=$(pwd)/runtime
 
+RVAS=$(which -a riscv64-unknown-linux-gnu-as riscv64-unknown-elf-as riscv64-linux-gnu-as 2>/dev/null | grep -v "not found" | head -n1)
+RVLD=$(which -a riscv64-unknown-linux-gnu-ld riscv64-unknown-elf-ld riscv64-linux-gnu-ld 2>/dev/null | grep -v "not found" | head -n1)
+QEMU32=$(which -a qemu-riscv32-static 2>/dev/null | grep -v "not found" | head -n1)
+QEMU64=$(which -a qemu-riscv64-static 2>/dev/null | grep -v "not found" | head -n1)
+
+
 echo "let runtime_dir = \"${RUNTIME}\"" > src/config.ml
-echo "let qemu_path = \"/usr/local/bin/qemu-riscv\"" >> src/config.ml
+echo "let qemu32 = \"${QEMU32}\"" >> src/config.ml
+echo "let qemu64 = \"${QEMU64}\"" >> src/config.ml
+echo "let rv_as = \"${RVAS}\"" >> src/config.ml
+echo "let rv_ld = \"${RVLD}\"" >> src/config.ml
+echo "let os_target = \"linux\"" >> src/config.ml
+
diff --git a/ldb/ldb.html b/ldb/ldb.html
index f4fea01..efcdd8e 100644
--- a/ldb/ldb.html
+++ b/ldb/ldb.html
@@ -44,7 +44,7 @@
             <div id="memstate"></div>
         </div>
             <div id="expr">
-                <input type="text" id="expr_input" size="30" /><br>
+                <input type="text" id="expr_input" size="20" /><br>
                 Result: <span id="expr_res"></span><hr>
                 <div id="subexprs"></div>
             </div>
diff --git a/ldb/ldb.js b/ldb/ldb.js
index a5709d1..a132038 100644
--- a/ldb/ldb.js
+++ b/ldb/ldb.js
@@ -678,10 +678,10 @@ function handle_command(d){
 
             for(let [evar,loc] of Object.entries(fb['vars'])){
                 if(Object.keys(loc).includes("reg")){
-                    p.insert("span").html("Var "+evar+": "+loc["reg"])
+                    p.insert("span").html("Var "+evar+": Reg "+loc["reg"])
                         .insert("br");
                 } else {
-                    p.insert("span").html("Var "+evar+": "+loc["stk"])
+                    p.insert("span").html("Var "+evar+": Stk "+loc["stk"])
                         .insert("br");
                 }
             }
diff --git a/ldb/style.css b/ldb/style.css
index 3828332..036b6c9 100644
--- a/ldb/style.css
+++ b/ldb/style.css
@@ -54,7 +54,7 @@ html {
 }
 #body{
     display: grid;
-    grid-template-columns: [ctrl] 300px [code] 250px [outcfg] 600px [state] 700px;
+    grid-template-columns: [ctrl] 250px [code] 400px [outcfg] 500px [state] 700px;
     grid-template-rows: [row1] 200px [row2] 200px [row3] 400px [row4];
 }
 #code {
diff --git a/runtime/lib32.s b/runtime/lib32.s
index e5ad73a..1249dd2 100644
--- a/runtime/lib32.s
+++ b/runtime/lib32.s
@@ -1,3 +1,4 @@
+	.include "syscall_numbers.s"
 	  .global atoi
 	  .global print_int
 	  .global println
@@ -66,7 +67,7 @@ li a3, 0
 li a4, 0
 li a5, 0
 li a6, 0
-li a7, 64
+li a7, SYSCALL_WRITE
 ecall
 jr ra
 print_char:
diff --git a/runtime/lib64.s b/runtime/lib64.s
index f407f9d..8a4710e 100644
--- a/runtime/lib64.s
+++ b/runtime/lib64.s
@@ -1,3 +1,4 @@
+.include "syscall_numbers.s"
   .global atoi
   .global print_int
   .global println
@@ -55,6 +56,7 @@ jal ra, print_a1
 ld ra, 0(sp)
 addi sp, sp, 8
 jr ra
+
 print_a1:
 addi sp, sp, -8
 sd ra,0(sp)
@@ -68,9 +70,10 @@ li a3, 0
 li a4, 0
 li a5, 0
 li a6, 0
-li a7, 64
+li a7, 	SYSCALL_WRITE
 ecall
 jr ra
+
 print_char:
 addi sp, sp, -8
 sd ra, 0(sp)
diff --git a/src/Makefile b/src/Makefile
index f972d56..94e5b1b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,11 +1,11 @@
 SRC=archi.ml ast.ml builtins.ml config.ml cfg_constprop.ml cfg_dead_assign.ml	\
-cfg.ml cfg_print.ml cfg_gen.ml cfg_liveness.ml cfg_loops.ml cfg_nop_elim.ml		\
-cfg_run.ml elang.ml elang_print.ml elang_gen.ml elang_run.ml e_regexp.ml			\
+cfg.ml cfg_print.ml cfg_gen.ml cfg_liveness.ml cfg_nop_elim.ml cfg_run.ml			\
+elang.ml elang_print.ml elang_gen.ml elang_run.ml e_regexp.ml									\
 generated_parser.ml lexer_generator.ml linear_dse.ml linear_liveness.ml				\
 linear.ml linear_print.ml linear_gen.ml linear_run.ml ltl.ml ltl_print.ml			\
 ltl_gen.ml ltl_run.ml ltl_debug.ml main.ml options.ml parser.ml prog.ml				\
 regalloc.ml report.ml riscv.ml rtl.ml rtl_print.ml rtl_gen.ml rtl_run.ml			\
-symbols.ml utils.ml
+symbols.ml tokenize.ml utils.ml
 
 TG = main.native
 
diff --git a/src/archi.ml b/src/archi.ml
index b65dc34..9887900 100644
--- a/src/archi.ml
+++ b/src/archi.ml
@@ -1,29 +1,61 @@
+open Config
+
 type archi = A64 | A32
 
-let wordsize = ref 8
-let assembler = ref "riscv64-unknown-elf-gcc"
-let instrsuffix = ref 'd'
 let archi = ref A64
-let nbits = ref 64
+let nbits () =
+  match !archi with
+  | A64 -> 64
+  | A32 -> 32
+
+let wordsize () = nbits () / 8
+
+let assembler () =
+  let opts =
+    match !archi with
+    | A64 -> "-march=rv64imafdc -mabi=lp64d"
+    | A32 -> "-march=rv32imafdc -mabi=ilp32"
+  in
+  Format.sprintf "%s %s" Config.rv_as opts
+
+let linker () =
+  let opts =
+    match !archi with
+      A64 -> "-melf64lriscv"
+    | A32 -> "-melf32lriscv"
+  in
+  Format.sprintf "%s %s" Config.rv_ld opts
+
+let instrsuffix () =
+  match !archi with
+  | A64 -> 'd'
+  | A32 -> 'w'
+
+let qemu () =
+  match !archi with
+  | A64 -> Config.qemu64
+  | A32 -> Config.qemu32
 
 let heapstart = ref 8
 
-let init_archi a () =
-  begin match a with
-    | A64 ->
-      begin
-        wordsize := 8;
-        assembler := "riscv64-unknown-elf-gcc";
-        instrsuffix := 'd';
-        archi := A64;
-      end
-    | A32 ->
-      begin
-        wordsize := 4;
-        assembler := "riscv32-unknown-elf-gcc";
-        instrsuffix := 'w';
-        archi := A32;
-      end
-  end
-  ;
-  nbits := !wordsize *8;
+type target_system =
+  | Linux
+  | Xv6
+
+let target = ref Linux
+
+let lib_syscall () =
+  match !target with
+  | Linux -> "linux"
+  | Xv6 -> "xv6"
+
+let target_data_segment t =
+  match t with
+  | Linux -> "8000000"
+  | Xv6 -> "2000"
+
+let runtime_lib_include_path () =
+  Format.sprintf "%s/%s" Config.runtime_dir (lib_syscall ())
+
+let runtime_lib_path () =
+  Format.sprintf "%s/lib%d.s" Config.runtime_dir (nbits ())
diff --git a/src/cfg_constprop.ml b/src/cfg_constprop.ml
index 524f8b1..55440c6 100644
--- a/src/cfg_constprop.ml
+++ b/src/cfg_constprop.ml
@@ -3,6 +3,9 @@ open Cfg
 open Elang_run
 open Prog
 open Utils
+open Report
+open Cfg_print
+open Options
 
 (* [simple_eval_eexpr e] evaluates an expression [e] with no variables. Raises
    an exception if the expression contains variables. *)
@@ -46,3 +49,10 @@ let constant_propagation_gdef = function
 
 let constant_propagation p =
   assoc_map constant_propagation_gdef p
+
+let pass_constant_propagation p =
+  let cfg = constant_propagation p in
+  record_compile_result "Constprop";
+  dump (!cfg_dump >*> fun s -> s ^ "1") dump_cfg_prog cfg
+    (call_dot "cfg-after-cstprop" "CFG after Constant Propagation");
+  OK cfg
diff --git a/src/cfg_dead_assign.ml b/src/cfg_dead_assign.ml
index abd0f04..e319094 100644
--- a/src/cfg_dead_assign.ml
+++ b/src/cfg_dead_assign.ml
@@ -3,6 +3,9 @@ open Cfg
 open Prog
 open Utils
 open Cfg_liveness
+open Report
+open Cfg_print
+open Options
 
 (* Dead Assign Elimination  -- Élimination des affectations mortes *)
 
@@ -32,3 +35,10 @@ let dead_assign_elimination_gdef = function
 
 let dead_assign_elimination p =
   assoc_map dead_assign_elimination_gdef p
+
+let pass_dead_assign_elimination cfg =
+  let cfg = dead_assign_elimination cfg in
+  record_compile_result "DeadAssign";
+  dump (!cfg_dump >*> fun s -> s ^ "2") dump_cfg_prog cfg
+    (call_dot "cfg-after-dae" "CFG after DAE");
+  OK cfg
diff --git a/src/cfg_gen.ml b/src/cfg_gen.ml
index e3d6b17..b20b933 100644
--- a/src/cfg_gen.ml
+++ b/src/cfg_gen.ml
@@ -3,6 +3,9 @@ open Elang
 open Cfg
 open Utils
 open Prog
+open Report
+open Cfg_print
+open Options
 
 (* [cfg_expr_of_eexpr e] converts an [Elang.expr] into a [expr res]. This should
    always succeed and be straightforward.
@@ -104,3 +107,12 @@ let cfg_gdef_of_edef gd =
 
 let cfg_prog_of_eprog (ep: eprog) : cfg_fun prog res =
   assoc_map_res (fun fname -> cfg_gdef_of_edef) ep
+
+let pass_cfg_gen ep =
+  match cfg_prog_of_eprog ep with
+  | Error msg ->
+    record_compile_result ~error:(Some msg) "CFG"; Error msg
+  | OK cfg ->
+    record_compile_result "CFG";
+    dump !cfg_dump dump_cfg_prog cfg (call_dot "cfg" "CFG");
+    OK cfg
diff --git a/src/cfg_nop_elim.ml b/src/cfg_nop_elim.ml
index 9de89ec..aae8225 100644
--- a/src/cfg_nop_elim.ml
+++ b/src/cfg_nop_elim.ml
@@ -3,6 +3,9 @@ open Batteries
 open Prog
 open Utils
 open Cfg
+open Report
+open Cfg_print
+open Options
 
 (* Élimination des NOPs. *)
 
@@ -77,3 +80,11 @@ let nop_elim_gdef gd =
 
 let nop_elimination cp =
   assoc_map nop_elim_gdef cp
+
+
+let pass_nop_elimination cfg =
+  let cfg = nop_elimination cfg in
+  record_compile_result "NopElim";
+  dump (!cfg_dump >*> fun s -> s ^ "3") dump_cfg_prog cfg
+    (call_dot "cfg-after-nop" "CFG after NOP elim");
+  OK cfg
diff --git a/src/elang_gen.ml b/src/elang_gen.ml
index e8f9cd6..eb6615b 100644
--- a/src/elang_gen.ml
+++ b/src/elang_gen.ml
@@ -2,6 +2,9 @@ open Ast
 open Elang
 open Prog
 open Utils
+open Report
+open Elang_print
+open Options
 
 let tag_is_binop =
   function
@@ -86,3 +89,13 @@ let make_eprog_of_ast (a: tree) : eprog res =
   | _ ->
     Error (Printf.sprintf "make_fundef_of_ast: Expected a Tlistglobdef, got %s."
              (string_of_ast a))
+
+let pass_elang ast =
+  match make_eprog_of_ast ast with
+  | Error msg ->
+    record_compile_result ~error:(Some msg) "Elang";
+    Error msg
+  | OK  ep ->
+    dump !e_dump dump_e ep (fun file () ->
+        add_to_report "e" "E" (Code (file_contents file))); OK ep
+
diff --git a/src/lexer_generator.ml b/src/lexer_generator.ml
index bd37e84..f79e1db 100644
--- a/src/lexer_generator.ml
+++ b/src/lexer_generator.ml
@@ -63,7 +63,7 @@ let star_nfa n t =
 (* [nfa_of_regexp r freshstate t] construit un NFA qui reconnaît le même langage
    que l'expression régulière [r].
    [freshstate] correspond à un entier pour lequel il n'y a pas encore d'état dans 
-   le nfa. Il suffit d'incrémenter [freshstate] pour obtenir de nouveaux état non utilisés.
+   le nfa. Il suffit d'incrémenter [freshstate] pour obtenir de nouveaux états non utilisés.
    [t] est une fonction du type [string -> token option] utile pour les état finaux.
 *)
 let rec nfa_of_regexp r freshstate t =
@@ -447,11 +447,6 @@ let dfa_to_dot oc (n : dfa) (cl: char list): unit =
     ) n.dfa_states;
   Printf.fprintf oc "}\n"
 
-let alts l =
-  match l with
-    [] -> Eps
-  | a::r -> List.fold_left (fun acc r -> Alt(acc,r)) a l
-
 let nfa_of_list_regexp l =
   let (n, fs) = List.fold_left (fun (nfa, fs) (r,t) ->
       let n,fs = nfa_of_regexp r fs t in
diff --git a/src/linear_dse.ml b/src/linear_dse.ml
index 1f4e0e0..e0ac6d9 100644
--- a/src/linear_dse.ml
+++ b/src/linear_dse.ml
@@ -5,6 +5,9 @@ open Batteries
 open BatList
 open Prog
 open Utils
+open Report
+open Linear_print
+open Options
 
 let dse_instr (ins: rtl_instr) live =
    [ins]
@@ -26,3 +29,12 @@ let dse_prog p live =
         let f = dse_fun live f in
         (fname, Gfun f)
       ) p
+
+let pass_linear_dse linear lives =
+  let linear = dse_prog linear lives in
+  record_compile_result "DSE";
+  dump (!linear_dump >*> fun s -> s ^ "1")
+    (fun oc -> dump_linear_prog oc (Some lives)) linear
+    (fun file () -> add_to_report "linear-after-dse" "Linear after DSE"
+        (Code (file_contents file)));
+  OK linear
diff --git a/src/linear_gen.ml b/src/linear_gen.ml
index 8c049a3..c12bd04 100644
--- a/src/linear_gen.ml
+++ b/src/linear_gen.ml
@@ -3,7 +3,10 @@ open Rtl
 open Linear
 open Prog
 open Utils
-
+open Report
+open Linear_print
+open Options
+open Linear_liveness
 
 let succs_of_rtl_instr (i: rtl_instr) =
   match i with
@@ -55,3 +58,10 @@ let linear_of_rtl_gdef = function
 
 let linear_of_rtl r =
   assoc_map linear_of_rtl_gdef r
+
+let pass_linearize rtl =
+  let linear = linear_of_rtl rtl in
+  let lives = liveness_linear_prog linear in
+  dump !linear_dump (fun oc -> dump_linear_prog oc (Some lives)) linear
+    (fun file () -> add_to_report "linear" "Linear" (Code (file_contents file)));
+  OK (linear, lives)
diff --git a/src/ltl.ml b/src/ltl.ml
index a1344a5..6082bfb 100644
--- a/src/ltl.ml
+++ b/src/ltl.ml
@@ -53,10 +53,10 @@ let reg_ret = reg_a0
 type ltl_instr =
     LAddi of ltl_reg * ltl_reg * int
   | LSubi of ltl_reg * ltl_reg * int
-  | LStore of ltl_reg * int * ltl_reg * int (* LStore(rd, rofs, rs, sz) : store
+  | LStore of ltl_reg * int * ltl_reg * mem_access_size (* LStore(rd, rofs, rs, sz) : store
                                                value in [rs] on [sz] bytes at
                                                address [rd+rofs] *)
-  | LLoad of ltl_reg * ltl_reg * int * int (* LLoad(rd, rs, rofs, sz) : load
+  | LLoad of ltl_reg * ltl_reg * int * mem_access_size (* LLoad(rd, rs, rofs, sz) : load
                                               value at address [rs+rofs] on [sz]
                                               bytes in register [rd]. *)
   | LMov of ltl_reg * ltl_reg   (* LMov(rd, rs) : move value of [rs] into [rd].
diff --git a/src/ltl_gen.ml b/src/ltl_gen.ml
index 68fb1e7..06edd32 100644
--- a/src/ltl_gen.ml
+++ b/src/ltl_gen.ml
@@ -7,6 +7,8 @@ open Prog
 open Utils
 open Regalloc
 open Linear_liveness
+open Report
+open Options
 
 (* list of registers used to store arguments. [a0-a7] *)
 let arg_registers =
@@ -18,12 +20,12 @@ let arg_registers =
 *)
 
 let make_push r =
-  [LSubi(reg_sp, reg_sp, !Archi.wordsize);
-   LStore(reg_sp, 0, r, !Archi.wordsize)]
+  [LSubi(reg_sp, reg_sp, (Archi.wordsize ()));
+   LStore(reg_sp, 0, r, (archi_mas ()))]
 
 let make_pop r =
-  [LLoad(r, reg_sp, 0, !Archi.wordsize);
-   LAddi(reg_sp, reg_sp, !Archi.wordsize)]
+  [LLoad(r, reg_sp, 0, (archi_mas ()));
+   LAddi(reg_sp, reg_sp, (Archi.wordsize ()))]
 
 let make_sp_sub v =
   [LSubi(reg_sp, reg_sp, v)]
@@ -39,12 +41,12 @@ let make_loc_mov src dst =
   match src, dst with
   | Stk osrc , Stk odst ->
     let rtmp = reg_tmp1 in
-    [LLoad(rtmp, reg_fp, !Archi.wordsize * osrc, !Archi.wordsize);
-     LStore(reg_fp, !Archi.wordsize * odst, rtmp, !Archi.wordsize)]
+    [LLoad(rtmp, reg_fp, (Archi.wordsize ()) * osrc, (archi_mas ()));
+     LStore(reg_fp, (Archi.wordsize ()) * odst, rtmp, (archi_mas ()))]
   | Stk osrc, Reg rdst ->
-    [LLoad(rdst, reg_fp, !Archi.wordsize * osrc, !Archi.wordsize)]
+    [LLoad(rdst, reg_fp, (Archi.wordsize ()) * osrc, (archi_mas ()))]
   | Reg rsrc, Stk ofst ->
-    [LStore(reg_fp, !Archi.wordsize * ofst, rsrc, !Archi.wordsize)]
+    [LStore(reg_fp, (Archi.wordsize ()) * ofst, rsrc, (archi_mas ()))]
   | Reg rsrc, Reg rdst ->
     [LMov(rdst,rsrc)]
 
@@ -54,7 +56,7 @@ let load_loc tmp allocation r =
   match Hashtbl.find_option allocation r with
   | None ->
     Error (Format.sprintf "Unable to allocate RTL register r%d." r)
-  | Some (Stk o) -> OK ([LLoad(tmp, reg_fp, !Archi.wordsize * o, !Archi.wordsize)], tmp)
+  | Some (Stk o) -> OK ([LLoad(tmp, reg_fp, (Archi.wordsize ()) * o, (archi_mas ()))], tmp)
   | Some (Reg r) -> OK ([], r)
 
 (* store_loc tmp allocation r = (l, r'). I want to write in RTL register r.
@@ -63,7 +65,7 @@ let store_loc tmp allocation r =
   match Hashtbl.find_option allocation r with
   | None ->
     Error (Format.sprintf "Unable to allocate RTL register r%d." r)
-  | Some (Stk o) -> OK ([LStore(reg_fp, !Archi.wordsize * o, tmp, !Archi.wordsize)], tmp)
+  | Some (Stk o) -> OK ([LStore(reg_fp, (Archi.wordsize ()) * o, tmp, (archi_mas ()))], tmp)
   | Some (Reg r) -> OK ([], r)
 
 (* saves registers in [to_save] on the stack at offsets [fp + 8 * o, fp + 8 * (o
@@ -73,14 +75,14 @@ let store_loc tmp allocation r =
    - the list of store instructions - the next offset to be written. *)
 let save_caller_save to_save ofs =
   List.fold_left (fun (instrs, arg_saved, ofs) reg ->
-      (instrs @ [LStore(reg_fp, !Archi.wordsize * ofs, reg, !Archi.wordsize)],
+      (instrs @ [LStore(reg_fp, (Archi.wordsize ()) * ofs, reg, (archi_mas ()))],
        (reg,ofs)::arg_saved, ofs - 1)
     ) ([], [], ofs) to_save
 
 (* Given a list [(reg,ofs)], loads [fp+ofs] into [reg]. *)
 let restore_caller_save arg_saved =
   List.map
-    (fun (reg, ofs) -> LLoad(reg, reg_fp, !Archi.wordsize * ofs, !Archi.wordsize))
+    (fun (reg, ofs) -> LLoad(reg, reg_fp, (Archi.wordsize ()) * ofs, (archi_mas ())))
     arg_saved
 
 let num_parameters_passed_on_stack regs =
@@ -192,13 +194,13 @@ let pass_parameters rargs allocation arg_saved =
           begin match src with
             | Reg rs ->  (rd::overwritten, [LMov(rd, rs)],[], npush)
             | Stk o -> (rd::overwritten,
-                        [LLoad(rd, reg_fp, !Archi.wordsize * o, !Archi.wordsize)],
+                        [LLoad(rd, reg_fp, (Archi.wordsize ()) * o, (archi_mas ()))],
                         [], npush)
           end else
           begin match src with
             | Reg rs -> (overwritten, [], make_push rs@pushes, npush+1)
             | Stk o ->  (overwritten, [],
-                         LLoad(reg_tmp1, reg_fp, !Archi.wordsize * o, !Archi.wordsize)
+                         LLoad(reg_tmp1, reg_fp, (Archi.wordsize ()) * o, (archi_mas ()))
                          ::make_push reg_tmp1 @ pushes,
                          npush+1)
           end
@@ -307,11 +309,11 @@ let ltl_instrs_of_linear_instr fname live_out allocation
       match Hashtbl.find_option allocation r with
       | None -> Error (Format.sprintf "Could not find allocation for register %d\n" r)
       | Some (Reg rs) -> OK [LMov(reg_a0, rs)]
-      | Some (Stk o) -> OK [LLoad(reg_a0, reg_fp, !Archi.wordsize * o, !Archi.wordsize)]
+      | Some (Stk o) -> OK [LLoad(reg_a0, reg_fp, (Archi.wordsize ()) * o, (archi_mas ()))]
     in
     parameter_passing >>= fun parameter_passing ->
     OK (LComment "Saving a0-a7,t0-t6" :: save_a_regs @
-        LAddi(reg_sp, reg_s0, !Archi.wordsize * (ofs + 1)) ::
+        LAddi(reg_sp, reg_s0, (Archi.wordsize ()) * (ofs + 1)) ::
         parameter_passing @
         LCall "print" ::
         LComment "Restoring a0-a7,t0-t6" :: restore_caller_save arg_saved)
@@ -364,7 +366,7 @@ let ltl_fun_of_linear_fun linprog
   let prologue =
     List.concat (List.map make_push (Set.to_list callee_saved_regs)) @
     LMov (reg_fp, reg_sp) ::
-    make_sp_sub (numspilled * !Archi.wordsize) @
+    make_sp_sub (numspilled * (Archi.wordsize ())) @
     [LComment "end prologue"] in
   let epilogue = LLabel epilogue_label ::
                  LMov(reg_sp, reg_fp) ::
@@ -411,3 +413,11 @@ let ltl_prog_of_linear lp =
     ) lp in
   prog
 
+let pass_ltl_gen linear =
+  match ltl_prog_of_linear linear with
+  | Error msg -> record_compile_result ~error:(Some msg) "LTL"; Error msg
+  | OK ltl ->
+    record_compile_result "LTL";
+    dump !ltl_dump dump_ltl_prog ltl
+      (fun file () -> add_to_report "ltl" "LTL" (Code (file_contents file)));
+    OK ltl
diff --git a/src/ltl_print.ml b/src/ltl_print.ml
index bdabe25..57869ea 100644
--- a/src/ltl_print.ml
+++ b/src/ltl_print.ml
@@ -83,9 +83,9 @@ let dump_ltl_instr oc (i: ltl_instr) =
     Format.fprintf oc "%s <- %s %s"
       (print_reg rd) (print_unop u)  (print_reg rs)
   | LStore(rt, i, rs, sz) ->
-    Format.fprintf oc "%s{%d}[%d] <- %s" (print_reg rt) sz i (print_reg rs)
+    Format.fprintf oc "%s%s[%d] <- %s" (print_reg rt) (string_of_mem_access_size sz) i (print_reg rs)
   | LLoad(rd, rt, i, sz) ->
-    Format.fprintf oc "%s <- %s{%d}[%d]" (print_reg rd) (print_reg rt) sz i
+    Format.fprintf oc "%s <- %s%s[%d]" (print_reg rd) (print_reg rt) (string_of_mem_access_size sz) i
   | LMov(rd, rs) ->
     Format.fprintf oc "%s <- %s" (print_reg rd) (print_reg rs)
   | LLabel l ->
diff --git a/src/ltl_run.ml b/src/ltl_run.ml
index 669033d..187fd87 100644
--- a/src/ltl_run.ml
+++ b/src/ltl_run.ml
@@ -101,11 +101,11 @@ let exec_ltl_instr oc ip st : (int option) res =
   | LStore(rt, i, rs, sz) ->
     get_reg st rt $ fun vt ->
       get_reg st rs $ fun vs ->
-        Mem.write_bytes st.mem (vt + i)  (split_bytes sz vs) >>= fun _ ->
+        Mem.write_bytes st.mem (vt + i)  (split_bytes (size_of_mas sz) vs) >>= fun _ ->
         next ip
   | LLoad(rd, rt, i, sz) ->
     get_reg st rt $ fun vt ->
-      Mem.read_bytes_as_int st.mem (vt + i) sz >>= fun (v) ->
+      Mem.read_bytes_as_int st.mem (vt + i) (size_of_mas sz) >>= fun (v) ->
       Array.set st.regs rd v;
       next ip
   | LMov(rd, rs) ->
@@ -201,9 +201,9 @@ let init_state memsize lp params =
   List.iteri (fun i p ->
       if i >= number_of_arguments_passed_in_registers
       then begin
-        let sp = Array.get regs reg_sp - !Archi.wordsize in
+        let sp = Array.get regs reg_sp - (Archi.wordsize ()) in
         Array.set regs reg_sp sp;
-        Mem.write_bytes mem sp (split_bytes !Archi.wordsize p) >>!
+        Mem.write_bytes mem sp (split_bytes (Archi.wordsize ()) p) >>!
         ignore
       end else
         begin
@@ -211,7 +211,7 @@ let init_state memsize lp params =
         end
     ) params;
   let mem_next = ref (codesize + 8) in
-  Mem.write_bytes mem codesize (split_bytes !Archi.wordsize !mem_next) >>!
+  Mem.write_bytes mem codesize (split_bytes (Archi.wordsize ()) !mem_next) >>!
   fun _ ->
   Printf.eprintf "numlabels = %d\n" (Hashtbl.length labels);
   Printf.eprintf "labels = %s\n" (Hashtbl.keys labels |> List.of_enum |> String.concat ", ");
diff --git a/src/main.ml b/src/main.ml
index dcc6443..abae9ca 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -35,12 +35,7 @@ open Archi
 open Report
 open Options
 open Lexer_generator
-
-open Cfg_loops
-
-let tokenize file =
-  Lexer_generator.tokenize_file file >>= fun tokens ->
-  OK (List.map (fun tok -> (tok, None)) tokens)
+open Tokenize
 
 let speclist =
   [
@@ -51,7 +46,6 @@ let speclist =
     ("-e-run", Arg.Set e_run, "Run Elang program.");
     ("-cfg-dump", Arg.String (fun s -> cfg_dump := Some s), "Output CFG file.");
     ("-cfg-run", Arg.Set cfg_run, "Run CFG program.");
-    ("-cfg-run-after-loop", Arg.Set cfg_run_after_loop, "Run CFG program after loop optimization.");
     ("-cfg-run-after-cp", Arg.Set cfg_run_after_cp, "Run CFG program after constant propagation.");
     ("-cfg-run-after-dae", Arg.Set cfg_run_after_dae, "Run CFG program after dead assign elimination.");
     ("-cfg-run-after-ne", Arg.Set cfg_run_after_ne, "Run CFG program after nop elimination.");
@@ -70,12 +64,15 @@ let speclist =
     ("-clever-regalloc", Arg.Unit (fun () -> naive_regalloc := false), "Use the graph coloring algorithm for register allocation.");
     ("-naive-regalloc", Arg.Unit (fun () -> naive_regalloc := true),
      "Use the naive algorithm for register allocation (all pseudo-registers go on the stack).");
+    ("-no-cfg-constprop", Arg.Set no_cfg_constprop, "Disable CFG constprop");
+    ("-no-cfg-dae", Arg.Set no_cfg_dae, "Disable CFG Dead Assign Elimination");
+    ("-no-cfg-ne", Arg.Set no_cfg_ne, "Disable CFG Nop Elimination");
+    ("-no-linear-dse", Arg.Set no_linear_dse, "Disable Linear Dead Store Elimination");
     ("-rig-dump", Arg.String (fun s -> rig_dump := Some s),
     "Path to output the register interference graph");
     ("-all-run", Arg.Unit (fun () ->
          e_run := true;
          cfg_run := true;
-         cfg_run_after_loop := true;
          cfg_run_after_cp := true;
          cfg_run_after_dae := true;
          cfg_run_after_ne := true;
@@ -94,106 +91,11 @@ let speclist =
     ("-nostart", Arg.Set nostart, "Don't output _start code.");
     ("-nostats", Arg.Set nostats, "Don't output stats.");
     ("-nomul", Arg.Unit (fun _ -> has_mul := false), "Target architecture without mul instruction.");
+    ("-linux", Arg.Unit (fun _ -> target := Linux), "emit linux syscalls");
+    ("-xv6", Arg.Unit (fun _ -> target := Xv6), "emit xv6 syscalls");
     ("--", Arg.Rest (fun p -> params := int_of_string p::!params), "Run parameters.")
   ]
 
-
-
-type run_result = {
-  step: string;
-  retval: int option;
-  output: string;
-  error: string option;
-  time: float;
-}
-
-type compile_result = {
-  step: string;
-  error: string option;
-  data: Yojson.t
-}
-
-type result = RunRes of run_result
-            | CompRes of compile_result
-
-
-let results = ref []
-
-let run step flag eval p =
-  if flag then begin
-    let starttime = Unix.gettimeofday () in
-    let res = match eval Format.str_formatter p !heapsize !params with
-      | exception e ->
-        Error (Printexc.to_string e)
-      | e -> e in
-    let timerun = Unix.gettimeofday () -. starttime in
-    begin match res with
-      | OK v ->
-        let output = Format.flush_str_formatter () in
-        results := !results @ [RunRes { step ; retval = v; output; error = None; time = timerun}];
-        add_to_report step ("Run " ^ step) (
-          Paragraph 
-            (
-              Printf.sprintf "With parameters : [%s]<br>\n" (String.concat"," (List.map string_of_int !params))
-              ^ Printf.sprintf "Mem size : %d bytes<br>\n" !heapsize
-              ^ Printf.sprintf "Return value : %s<br>\n" (match v with | Some v -> string_of_int v | _ -> "none")
-              ^ Printf.sprintf "Output : <pre style=\"padding: 1em; background-color: #ccc;\">%s</pre>\n" output
-              ^ Printf.sprintf "Time : %f seconds<br>\n" timerun
-            )
-        )
-      | Error msg ->
-        let output  = Format.flush_str_formatter () in
-        results := !results @ [RunRes { step ; retval = None; output; error = Some msg; time = timerun}];
-        add_to_report step ("Run " ^ step) (
-          Paragraph 
-            (
-              Printf.sprintf "With parameters : [%s]<br>\n" (String.concat"," (List.map string_of_int !params))
-              ^ Printf.sprintf "Mem size : %d bytes<br>\n" !heapsize
-              ^ Printf.sprintf "Return value : none<br>\n"
-              ^ Printf.sprintf "Output : <pre style=\"padding: 1em; background-color: #ccc;\">%s</pre>\n" output
-              ^ Printf.sprintf "Error : <pre style=\"padding: 1em; background-color: #fcc;\">\n%s</pre>\n" msg
-              ^ Printf.sprintf "Time : %f seconds<br>\n" timerun
-            )
-        )
-
-    end
-  end
-
-let record_compile_result ?error:(error=None) ?data:(data=[]) step =
-  let data = if not !Options.nostats then `List data else `Null in
-  results := !results @ [CompRes { step; error; data}]
-
-
-
-let process_output_to_list2 = fun command ->
-  let chan = Unix.open_process_in command in
-  let res = ref ([] : string list) in
-  let rec process_otl_aux () =
-    let e = input_line chan in
-    res := e::!res;
-    process_otl_aux() in
-  try process_otl_aux ()
-  with End_of_file ->
-    let stat = Unix.close_process_in chan in (List.rev !res,stat)
-
-let cmd_to_list command =
-  let (l,_) = process_output_to_list2 command in l
-
-let file_contents file =
-  match
-    let ic = open_in file in
-    let rec aux s () =
-      try
-        let line = input_line ic in  (* read line from in_channel and discard \n *)
-        aux (s ^ line ^ "\n") ()   (* close the input channel *)
-      with e ->                      (* some unexpected exception occurs *)
-        close_in_noerr ic;           (* emergency closing *)
-        s in
-    aux "" ()
-  with
-  | exception Sys_error _ -> failwith (Printf.sprintf "Could not open file %s\n" file)
-  | x -> x
-
 let set_default r v suff =
   match !r with
     None -> r := Some (v ^ suff)
@@ -201,13 +103,28 @@ let set_default r v suff =
 
 let compile_rv basename asmfile () =
   if not !Options.nostart then begin
-    let out, _ =
-      Format.sprintf
-        "%s -nostdlib -nostartfiles -T %s/link.ld -o \"%s.exe\" \"%s\" %s/lib%d.s %s/mul%d.S 2>&1"
-        !Archi.assembler Config.runtime_dir basename asmfile 
-        Config.runtime_dir !Archi.nbits
-        Config.runtime_dir !Archi.nbits
-      |> process_output_to_list2 in
+    let obj_file_prog = Filename.temp_file ~temp_dir:"/tmp" "" ".o" in
+    let cmdas_prog = Format.sprintf "%s -I%s -o %s %s"
+        (Archi.assembler ())
+        (Archi.runtime_lib_include_path ())
+        obj_file_prog asmfile in
+    let obj_file_lib = Filename.temp_file ~temp_dir:"/tmp" "" ".o" in
+    let cmdas_lib = Format.sprintf "%s -I%s -o %s %s"
+        (Archi.assembler ())
+        (Archi.runtime_lib_include_path ())
+        obj_file_lib (Archi.runtime_lib_path ()) in
+    let cmdld = Format.sprintf "%s -T %s/link.ld %s %s -o %s.exe"
+        (Archi.linker ())
+        Config.runtime_dir
+        obj_file_prog obj_file_lib
+        basename in
+    Printf.printf "AS: %s\n" cmdas_prog;
+    Printf.printf "AS: %s\n" cmdas_lib;
+    Printf.printf "LD: %s\n" cmdld;
+    let out_as_prog = cmd_to_list cmdas_prog in
+    let out_as_lib = cmd_to_list cmdas_lib in
+    let out_ld = cmd_to_list cmdld in
+    let out = out_as_prog @ out_as_lib @ out_ld in
     match out with
       [] -> None
     | _ -> Some (String.concat "\n" out)
@@ -223,17 +140,12 @@ let exec_rv_prog ltl basename oc rvp heapsize params =
       f
   in
   let error = ref None in
-  dump (Some rvp) (fun oc p ->
-      match dump_riscv_prog oc p with
-      | OK _ -> ()
-      | Error msg -> error := Some msg
-    ) ltl (fun file () ->
-      if !error = None
-      then error := compile_rv basename file ());
+  dump (Some rvp) (dump_riscv_prog !Archi.target) ltl (fun file () ->
+      error := compile_rv basename file ());
   match !error with
   | Some e -> Error ("RiscV generation error:\n" ^e)
   | None ->
-    let l = cmd_to_list (Format.sprintf "%s%d-static \"%s.exe\" %s" Config.qemu_path !Archi.nbits basename
+    let l = cmd_to_list (Format.sprintf "%s \"%s.exe\" %s" (Archi.qemu ())  basename
                            (params |> List.map string_of_int |> String.concat " " )) in
     try
       let all_but_last = l |> List.rev |> List.tl |> List.rev in
@@ -245,7 +157,7 @@ let exec_rv_prog ltl basename oc rvp heapsize params =
 
 let _ =
   Arg.parse speclist (fun s -> ()) "Usage";
-  init_archi !archi ();
+  Archi.archi := !archi;
   match !input_file with
   | None -> failwith "No input file specified.\n"
   | Some input ->
@@ -255,142 +167,54 @@ let _ =
       None -> failwith
                 (Format.sprintf "File (%s) should end in .e" input)
     | Some basename ->
-      begin
-        params := List.rev !params;
-        set_default riscv_dump basename ".s";
-        if not !no_dump then begin
-          set_default show_tokens basename ".lex";
-          set_default ast_tree basename ".ast";
-          set_default e_dump basename ".e.dump";
-          set_default cfg_dump basename ".cfg";
-          set_default rtl_dump basename ".rtl";
-          set_default linear_dump basename ".linear";
-          set_default rig_dump basename ".rig";
-          set_default ltl_dump basename ".ltl";
-        end;
-
-        tokenize input >>* (fun msg ->
-            record_compile_result ~error:(Some msg) "Lexing";
-          ) $ fun tokens ->
-            record_compile_result "Lexing";
-            dump !show_tokens (fun oc tokens ->
-                List.iter (fun (tok,_) ->
-                    Format.fprintf oc "%s\n" (string_of_symbol tok)
-                  ) tokens) tokens (fun f () -> add_to_report "lexer" "Lexer" (Code (file_contents f)));
-            parse tokens () >>* (fun msg ->
-                record_compile_result ~error:(Some msg) "Parsing";
-              ) $ fun (ast, tokens) ->
-                record_compile_result "Parsing";
-                dump !ast_tree draw_ast_tree ast (call_dot "ast" "AST");
-                if !ast_dump then Format.printf "%s\n" (string_of_ast ast) else ();
-
-                match make_eprog_of_ast ast with
-                | Error msg -> record_compile_result ~error:(Some msg) "Elang"
-                | OK  ep ->
-                  dump !e_dump dump_e ep (fun file () ->
-                      add_to_report "e" "E" (Code (file_contents file)));
-                  run "Elang" !e_run eval_eprog ep;
-
-                  match cfg_prog_of_eprog ep with
-                  | Error msg ->
-                    record_compile_result ~error:(Some msg) "CFG";
-                  | OK cfg ->
-                    record_compile_result ~data:([(`Assoc (List.map (fun (fname,Prog.Gfun cfgfun) -> (fname, `Int (Cfg.size_fun cfgfun.cfgfunbody))) cfg))]) "CFG";
-
-                    dump !cfg_dump dump_cfg_prog cfg (call_dot "cfg" "CFG");
-                    run "CFG" !cfg_run eval_cfgprog cfg;
-
-                    let cfg = optimize_loop_cfg cfg in
-                    record_compile_result ~data:([(`Assoc (List.map (fun (fname,Prog.Gfun cfgfun) -> (fname, `Int (Cfg.size_fun cfgfun.cfgfunbody))) cfg))]) "CFG loops";
-                    dump (!cfg_dump >*> fun s -> s ^ "0") dump_cfg_prog cfg
-                      (call_dot "cfg-after-loop" "CFG after loop optim");
-                    run "CFG after loop optim" !cfg_run_after_loop eval_cfgprog cfg;
-
-
-                    let cfg = constant_propagation cfg in
-                    record_compile_result ~data:([(`Assoc (List.map (fun (fname,Prog.Gfun cfgfun) -> (fname, `Int (Cfg.size_fun cfgfun.cfgfunbody))) cfg))]) "Constprop";
-                    dump (!cfg_dump >*> fun s -> s ^ "1") dump_cfg_prog cfg
-                      (call_dot "cfg-after-cstprop" "CFG after Constant Propagation");
-                    run "CFG after constant_propagation" !cfg_run_after_cp eval_cfgprog cfg;
-
-                    let cfg = dead_assign_elimination cfg in
-                    record_compile_result ~data:([(`Assoc (List.map (fun (fname,Prog.Gfun cfgfun) -> (fname, `Int (Cfg.size_fun cfgfun.cfgfunbody))) cfg))]) "DeadAssign";
-                    dump (!cfg_dump >*> fun s -> s ^ "2") dump_cfg_prog cfg
-                      (call_dot "cfg-after-dae" "CFG after DAE");
-                    run "CFG after dead_assign_elimination" !cfg_run_after_dae eval_cfgprog cfg;
-
-                    let cfg = nop_elimination cfg in
-                    record_compile_result ~data:([(`Assoc (List.map (fun (fname,Prog.Gfun cfgfun) -> (fname, `Int (Cfg.size_fun cfgfun.cfgfunbody))) cfg))]) "NopElim";
-                    dump (!cfg_dump >*> fun s -> s ^ "3") dump_cfg_prog cfg
-                      (call_dot "cfg-after-nop" "CFG after NOP elim");
-                    run "CFG after nop_elimination" !cfg_run_after_ne eval_cfgprog cfg;
-
-
-                    let rtl = rtl_of_cfg cfg in
-                    dump !rtl_dump dump_rtl_prog rtl
-                      (fun file () -> add_to_report "rtl" "RTL" (Code (file_contents file)));
-                    run "RTL" !rtl_run exec_rtl_prog rtl;
-
-                    let linear = linear_of_rtl rtl in
-                    let lives = liveness_linear_prog linear in
-                    dump !linear_dump (fun oc -> dump_linear_prog oc (Some lives)) linear
-                      (fun file () -> add_to_report "linear" "Linear" (Code (file_contents file)));
-                    run "Linear" !linear_run exec_linear_prog linear;
-
-                    let linear = dse_prog linear lives in
-                    record_compile_result "DSE";
-                    dump (!linear_dump >*> fun s -> s ^ "1")
-                      (fun oc -> dump_linear_prog oc (Some lives)) linear
-                      (fun file () -> add_to_report "linear-after-dse" "Linear after DSE"
-                          (Code (file_contents file)));
-                    run "Linear after DSE" !linear_run_after_dse exec_linear_prog linear;
-
-                    match ltl_prog_of_linear linear with
-                    | Error msg -> record_compile_result ~error:(Some msg) "LTL"
-                    | OK ltl ->
-                      dump !ltl_dump dump_ltl_prog ltl
-                        (fun file () -> add_to_report "ltl" "LTL" (Code (file_contents file)));
-                      run "LTL" !ltl_run (exec_ltl_prog) ltl;
-                      (if !ltl_debug then debug_ltl_prog input ltl !heapsize !params);
-
-                      dump !riscv_dump (fun oc p ->
-                          match dump_riscv_prog oc p with
-                          | OK _ -> ()
-                          | Error msg -> record_compile_result ~error:(Some msg) "RISCV"
-                        ) ltl (fun file () ->
-                          add_to_report "riscv" "RISC-V" (Code (file_contents file));
-                          ignore (compile_rv basename file ()));
-                      if not !Options.nostart then begin
-                        run "Risc-V" !riscv_run (exec_rv_prog ltl basename) !riscv_dump
-                      end;
-
+      params := List.rev !params;
+      set_default riscv_dump basename ".s";
+      if not !no_dump then begin
+        set_default show_tokens basename ".lex";
+        set_default ast_tree basename ".ast";
+        set_default e_dump basename ".e.dump";
+        set_default cfg_dump basename ".cfg";
+        set_default rtl_dump basename ".rtl";
+        set_default linear_dump basename ".linear";
+        set_default rig_dump basename ".rig";
+        set_default ltl_dump basename ".ltl";
       end;
 
-      let json_output_string = 
-        let open Yojson in
-        let jstring_of_ostring o =
-          match o with
-          | None -> `Null
-          | Some s -> `String s
-        in
-        let j = `List (List.map (function
-            | RunRes { step; retval; output; error; time } ->
-              `Assoc [("runstep",`String step);
-                      ("retval", match retval with Some r -> `Int r | None -> `Null);
-                      ("output", `String output);
-                      ("error", jstring_of_ostring error);
-                      ("time", `Float time)
-                     ]
-            | CompRes { step; error; data } ->
-              `Assoc [("compstep",`String step);
-                      ("error", jstring_of_ostring error);
-                      ("data", data)
-                     ]
-          ) !results) in
-        (Yojson.pretty_to_string j) in
-
-
+      let compiler_res =
+        pass_tokenize input >>= fun tokens ->
+        pass_parse tokens >>= fun (ast, _) ->
+        pass_elang ast >>= fun ep ->
+        run "Elang" !e_run eval_eprog ep;
+        pass_cfg_gen ep >>= fun cfg ->
+        run "CFG" !cfg_run eval_cfgprog cfg;
+        pass_constant_propagation cfg >>= fun cfg ->
+        run "CFG after constant_propagation" !cfg_run_after_cp eval_cfgprog cfg;
+        pass_dead_assign_elimination cfg >>= fun cfg ->
+        run "CFG after dead_assign_elimination" !cfg_run_after_dae eval_cfgprog cfg;
+        pass_nop_elimination cfg >>= fun cfg ->
+        run "CFG after nop_elimination" !cfg_run_after_ne eval_cfgprog cfg;
+        pass_rtl_gen cfg >>= fun rtl ->
+        run "RTL" !rtl_run exec_rtl_prog rtl;
+        pass_linearize rtl >>= fun (linear, lives) ->
+        run "Linear" !linear_run exec_linear_prog linear;
+        pass_linear_dse linear lives >>= fun linear ->
+        run "Linear after DSE" !linear_run_after_dse exec_linear_prog linear;
+        pass_ltl_gen linear
+      in
+      begin
+        match compiler_res with
+        | Error msg -> ()
+        | OK ltl ->
+          run "LTL" !ltl_run (exec_ltl_prog) ltl;
+          (if !ltl_debug then debug_ltl_prog input ltl !heapsize !params);
+          dump !riscv_dump (dump_riscv_prog !Archi.target) ltl (fun file () ->
+              add_to_report "riscv" "RISC-V" (Code (file_contents file));
+              ignore (compile_rv basename file ()));
+          if not !Options.nostart then begin
+            run "Risc-V" !riscv_run (exec_rv_prog ltl basename) !riscv_dump
+          end
+      end;
       dump (Some !output_json) (fun oc p ->
           Format.fprintf oc "%s\n" p
-        ) json_output_string (fun _ () -> ());
+        ) (json_output_string ()) (fun _ () -> ());
       make_report input report ()
diff --git a/src/options.ml b/src/options.ml
index b6bdd51..1c0772e 100644
--- a/src/options.ml
+++ b/src/options.ml
@@ -30,6 +30,10 @@ let nostats = ref false
 let has_mul = ref true
 let no_dump = ref false
 let no_dot = ref false
+let no_cfg_constprop = ref false
+let no_cfg_dae = ref false
+let no_cfg_ne = ref false
+let no_linear_dse = ref false
 
 let alloc_order_st = ref true
 let naive_regalloc = ref true
diff --git a/src/parser.ml b/src/parser.ml
index 12a2a61..8f0a0ba 100644
--- a/src/parser.ml
+++ b/src/parser.ml
@@ -1,3 +1,16 @@
 open Generated_parser
+open Report
+open Utils
+open Options
+open Ast
 
 let parse = parse_S
+
+let pass_parse tokens =
+  match parse tokens () with
+  | Error msg -> record_compile_result ~error:(Some msg) "Parsing"; Error msg
+  | OK (ast, tokens) ->
+    record_compile_result "Parsing";
+    dump !ast_tree draw_ast_tree ast (call_dot "ast" "AST");
+    if !ast_dump then Format.printf "%s\n" (string_of_ast ast) else ();
+    OK (ast, tokens)
diff --git a/src/prog.ml b/src/prog.ml
index 99b3360..ffe4980 100644
--- a/src/prog.ml
+++ b/src/prog.ml
@@ -1,5 +1,37 @@
 open Utils
 
+
+type mem_access_size =
+  | MAS1
+  | MAS4
+  | MAS8
+
+let string_of_mem_access_size mas =
+  match mas with
+  | MAS1 -> "{1}"
+  | MAS4 -> "{4}"
+  | MAS8 -> "{8}"
+
+let mas_of_size n =
+  match n with
+  | 1 -> OK MAS1
+  | 4 -> OK MAS4
+  | 8 -> OK MAS8
+  | _ -> Error (Printf.sprintf "Unknown memory access size for size = %d" n)
+
+
+let size_of_mas mas =
+  match mas with
+  | MAS1 -> 1
+  | MAS4 -> 4
+  | MAS8 -> 8
+
+let archi_mas () =
+  match !Archi.archi with
+  | A64 -> MAS8
+  | A32 -> MAS4
+
+
 type 'a gdef = Gfun of 'a
 
 type 'a prog = (string * 'a gdef) list
diff --git a/src/report.ml b/src/report.ml
index b60bb9c..94d927d 100644
--- a/src/report.ml
+++ b/src/report.ml
@@ -1,3 +1,5 @@
+open Options
+open Utils
 
 type html_node =
   | Img of string
@@ -45,3 +47,88 @@ let call_dot report_sectid report_secttitle file () : unit =
     add_to_report report_sectid report_secttitle (Img (Filename.basename file^".svg"));
     ignore r
   end
+
+(*  *)
+
+
+type run_result = {
+  step: string;
+  retval: int option;
+  output: string;
+  error: string option;
+  time: float;
+}
+
+type compile_result = {
+  step: string;
+  error: string option;
+  data: Yojson.t
+}
+
+type result = RunRes of run_result
+            | CompRes of compile_result
+
+
+let results : result list ref = ref []
+
+
+let record_compile_result ?error:(error=None) ?data:(data=[]) step =
+  let data = if not !Options.nostats then `List data else `Null in
+  results := !results @ [CompRes { step; error; data}]
+
+
+let run step flag eval p =
+  if flag then begin
+    let starttime = Unix.gettimeofday () in
+    let res = match eval Format.str_formatter p !heapsize !params with
+      | exception e ->
+        Error (Printexc.to_string e)
+      | e -> e in
+    let timerun = Unix.gettimeofday () -. starttime in
+    let output = Format.flush_str_formatter () in
+    let rres = { step ; retval = None; output; error = None; time = timerun} in
+    let rres =
+    begin match res with
+      | OK v ->  { rres with retval = v }
+      | Error msg -> { rres with error = Some msg }
+    end in
+    results := !results @ [RunRes rres];
+    add_to_report step ("Run " ^ step) (
+      Paragraph
+        (
+          Printf.sprintf "With parameters : [%s]<br>\n" (String.concat"," (List.map string_of_int !params))
+          ^ Printf.sprintf "Mem size : %d bytes<br>\n" !heapsize
+          ^ Printf.sprintf "Return value : %s<br>\n" (match rres.retval with | Some v -> string_of_int v | _ -> "none")
+          ^ Printf.sprintf "Output : <pre style=\"padding: 1em; background-color: #ccc;\">%s</pre>\n" output
+          ^
+          (match rres.error with
+           | Some msg -> Printf.sprintf "Error : <pre style=\"padding: 1em; background-color: #fcc;\">\n%s</pre>\n" msg
+           | _ -> "")
+          ^ Printf.sprintf "Time : %f seconds<br>\n" timerun
+        )
+    )
+  end
+
+
+let json_output_string () =
+  let open Yojson in
+  let jstring_of_ostring o =
+    match o with
+    | None -> `Null
+    | Some s -> `String s
+  in
+  let j = `List (List.map (function
+      | RunRes { step; retval; output; error; time } ->
+        `Assoc [("runstep",`String step);
+                ("retval", match retval with Some r -> `Int r | None -> `Null);
+                ("output", `String output);
+                ("error", jstring_of_ostring error);
+                ("time", `Float time)
+               ]
+      | CompRes { step; error; data } ->
+        `Assoc [("compstep",`String step);
+                ("error", jstring_of_ostring error);
+                ("data", data)
+               ]
+    ) !results) in
+  (Yojson.pretty_to_string j)
diff --git a/src/riscv.ml b/src/riscv.ml
index 9c6402b..c38276f 100644
--- a/src/riscv.ml
+++ b/src/riscv.ml
@@ -7,6 +7,7 @@ open Ltl_print
 open Utils
 open Prog
 open Options
+open Archi
 
 (* This file performs the translation from LTL programs to RISC-V assembly
    programs. The languages are basically the same, so the only thing to do here
@@ -45,166 +46,126 @@ let print_binop (b: binop) =
   | Elang.Exor -> "xor"
   | Elang.Ediv -> "divu"
   | Elang.Esub -> "sub"
-  | _ -> assert false
+  | _ -> failwith "Unexpected binop"
 
 let print_unop (u: unop) =
   match u with
   | Elang.Eneg -> "neg"
 
 let instrsuffix_of_size sz =
-  match !Archi.archi, sz with
-  | _, 1 -> OK 'b'
-  | _, 4 -> OK 'w'
-  | A64, 8 -> OK 'd'
-  | _, _ ->
-    Error (Format.sprintf "Impossible write size (%d) in archi (%d)"
-                sz !Archi.nbits)
+  match sz with
+  | MAS1 -> 'b'
+  | MAS4 -> 'w'
+  | MAS8 -> 'd'
 
 let dump_riscv_instr oc (i: ltl_instr) =
   match i with
   | LAddi(rd, rs, i) ->
-    Format.fprintf oc "addi %s, %s, %d\n" (print_reg rd) (print_reg rs) i;
-    OK ()
+    Format.fprintf oc "addi %s, %s, %d\n" (print_reg rd) (print_reg rs) i
   | LSubi(rd, rs, i) ->
-    Format.fprintf oc "addi %s, %s, %d\n" (print_reg rd) (print_reg rs) (-i);
-    OK ()
+    Format.fprintf oc "addi %s, %s, %d\n" (print_reg rd) (print_reg rs) (-i)
   | LBinop(b, rd, rs1, rs2) ->
     begin match b with
-      | Elang.Eclt ->
+     | Elang.Eclt ->
         Format.fprintf oc "slt %s, %s, %s\n"
-          (print_reg rd) (print_reg rs1) (print_reg rs2);
-        OK ()
+          (print_reg rd) (print_reg rs1) (print_reg rs2)
       | Elang.Ecgt ->
         Format.fprintf oc "slt %s, %s, %s\n"
-          (print_reg rd) (print_reg rs2) (print_reg rs1);
-        OK ()
+          (print_reg rd) (print_reg rs2) (print_reg rs1)
       | Elang.Ecle ->
-        (* 'rd <- rs1 <= rs2' == 'rd <- rs2 < rs1; rd <- not rd' *)
+        (* 'rd <- rs1 <= rs2' == 'rd <- rs2 < rs1; rd <- seqz rd' *)
         Format.fprintf oc "slt %s, %s, %s\n"
           (print_reg rd) (print_reg rs2) (print_reg rs1);
         Format.fprintf oc "seqz %s, %s\n"
-          (print_reg rd) (print_reg rd);
-        OK ()
+          (print_reg rd) (print_reg rd)
       | Elang.Ecge ->
         Format.fprintf oc "slt %s, %s, %s\n"
           (print_reg rd) (print_reg rs1) (print_reg rs2);
         Format.fprintf oc "seqz %s, %s\n"
-          (print_reg rd) (print_reg rd);
-        OK ()
+          (print_reg rd) (print_reg rd)
       | Elang.Eceq ->
         Format.fprintf oc "sub %s, %s, %s\n"
           (print_reg rd) (print_reg rs1) (print_reg rs2);
         Format.fprintf oc "seqz %s, %s\n"
-          (print_reg rd) (print_reg rd);
-        OK ()
+          (print_reg rd) (print_reg rd)
       | Elang.Ecne ->
         Format.fprintf oc "sub %s, %s, %s\n"
           (print_reg rd) (print_reg rs1) (print_reg rs2);
         Format.fprintf oc "snez %s, %s\n"
-          (print_reg rd) (print_reg rd);
-        OK ()
+          (print_reg rd) (print_reg rd)
       | _ -> Format.fprintf oc "%s %s, %s, %s\n"
-               (print_binop b) (print_reg rd) (print_reg rs1) (print_reg rs2);
-        OK ()
+               (print_binop b) (print_reg rd) (print_reg rs1) (print_reg rs2)
     end
   | LUnop(u, rd, rs) ->
     Format.fprintf oc "%s %s, %s\n"
-          (print_unop u) (print_reg rd) (print_reg rs); OK ()
+          (print_unop u) (print_reg rd) (print_reg rs)
   | LStore(rt, i, rs, sz) ->
-    (instrsuffix_of_size sz) >>= fun sz ->
-    OK (Format.fprintf oc "s%c %s, %d(%s)\n"
-          sz (print_reg rs) i (print_reg rt))
+    let sz = instrsuffix_of_size sz in
+    Format.fprintf oc "s%c %s, %d(%s)\n"
+          sz (print_reg rs) i (print_reg rt)
   | LLoad(rd, rt, i, sz) ->
-    (instrsuffix_of_size sz) >>= fun sz ->
+    let sz = (instrsuffix_of_size sz) in
     Format.fprintf oc "l%c %s, %d(%s)\n"
-      sz (print_reg rd) i (print_reg rt); OK ()
+      sz (print_reg rd) i (print_reg rt)
   | LMov(rd, rs) ->
-    Format.fprintf oc "mv %s, %s\n" (print_reg rd) (print_reg rs);
-    OK ()
+    Format.fprintf oc "mv %s, %s\n" (print_reg rd) (print_reg rs)
   | LLabel l ->
-    Format.fprintf oc "%s:\n" l;
-    OK ()
-  | LJmp l -> Format.fprintf oc "j %s\n" l;
-    OK ()
-  | LJmpr r -> Format.fprintf oc "jr %s\n" (print_reg r);
-    OK ()
-  | LConst (rd, i) -> Format.fprintf oc "li %s, %d\n\n" (print_reg rd) i;
-    OK ()
-  | LComment l -> Format.fprintf oc "# %s\n" l;
-    OK ()
+    Format.fprintf oc "%s:\n" l
+  | LJmp l -> Format.fprintf oc "j %s\n" l
+  | LJmpr r -> Format.fprintf oc "jr %s\n" (print_reg r)
+  | LConst (rd, i) -> Format.fprintf oc "li %s, %d\n\n" (print_reg rd) i
+  | LComment l -> Format.fprintf oc "# %s\n" l
   | LBranch(cmp, rs1, rs2, s) ->
     Format.fprintf oc "%s %s, %s, %s\n"
-      (riscv_of_cmp cmp) (print_reg rs1) (print_reg rs2) s;
-    OK ()
+      (riscv_of_cmp cmp) (print_reg rs1) (print_reg rs2) s
   | LCall fname ->
-    Format.fprintf oc "jal ra, %s\n" fname;
-    OK ()
-  | LHalt -> Format.fprintf oc "halt\n";
-    OK ()
+    Format.fprintf oc "jal ra, %s\n" fname
+  | LHalt -> Format.fprintf oc "halt\n"
 
 let dump_riscv_fun oc (fname , lf) =
   Format.fprintf oc "%s:\n" fname;
-  list_iter_res (dump_riscv_instr oc) lf.ltlfunbody
-
-let riscv_load_args oc : unit res =
-  let nargs = [1;2;3;4;5;6;7;8] in
-  (* for each arg in [1..8]:
-       a0 <- arg
-       call load_int_arg
-       call atoi
-       sd a0, -8*arg(fp)
-  *)
-  let l1 = (nargs |>
-           List.map (fun i ->
-               [LConst(reg_a0, i);
-                LCall("load_int_arg");
-                LBranch(Rceq, reg_a0, reg_zero, Printf.sprintf "riscv_load_arg_end");
-                LCall("atoi");
-                LStore(reg_fp, - !Archi.wordsize*i,
-                       reg_a0, !Archi.wordsize);
-               ]))
-           @
-      [[LLabel(Printf.sprintf "riscv_load_arg_end")]]
-  in
-  (* for each arg in [1..8]
-     ld a{arg-1}, -8*arg(fp)
-  *)
-  let l2 = nargs |>
-           List.map (fun i ->
-               [LLoad(starting_arg_register + i - 1, reg_fp,
-                      - !Archi.wordsize*i, !Archi.wordsize)]) in
-  (l1 @ l2) |> List.concat |> list_iter_res (fun i -> dump_riscv_instr oc i)
-
-
-let riscv_fun_load_arg oc () =
-  ("load_int_arg",{
-      ltlfunargs = 0;
-      (*
-
-         *( fp + a0 * wordsize + 8)
-
-         t0 <- Archi.wordsize (in this example 8)
-         mul a0, a0, t0
-         add t0, fp, a0
-         ld a0, 8(t0)
-         jmpr ra
-      *)
-      ltlfunbody = [LConst(reg_t0, !Archi.wordsize);
-                    LBinop(Emul, reg_ret, reg_ret, reg_t0);
-                    LBinop(Eadd, reg_t0, reg_fp, reg_ret);
-                    LLoad(reg_ret, reg_t0, !Archi.wordsize, !Archi.wordsize);
-                    LJmpr reg_ra
-                   ];
-      ltlfuninfo = [];
-      ltlregalloc = []
-    }) |> dump_riscv_fun oc
+  List.iter (dump_riscv_instr oc) lf.ltlfunbody
+
+let riscv_load_args target oc : unit =
+  (match target with
+   | Linux -> LLoad(reg_s1, reg_sp, 0, archi_mas ()) :: (* s1 <- argc *)
+              LAddi(reg_s2, reg_sp, (Archi.wordsize ())) :: []
+   | Xv6 -> LMov(reg_s1, reg_a0) ::
+            LMov(reg_s2, reg_a1) :: []) @
+  LConst(reg_s3, 1) ::
+  LSubi(reg_sp, reg_sp, 72) ::
+  LLabel "Lloop" ::
+  LBranch(Rceq, reg_s3, reg_s1, "Lendargs") ::
+  LMov(reg_a0, reg_t4) ::
+  LAddi(reg_s4, reg_s3, 0) ::
+  LConst(reg_t1, (Archi.wordsize ())) ::
+  LBinop(Emul, reg_s4, reg_s4, reg_t1) ::
+  LBinop(Eadd, reg_t3, reg_s4, reg_s2) ::
+  LLoad(reg_a0, reg_t3, 0, archi_mas ()) ::
+  LCall "atoi" ::
+  LBinop(Esub, reg_s4, reg_fp, reg_s4) ::
+  LStore(reg_s4, 0, reg_a0, archi_mas ()) ::
+  LAddi(reg_s3, reg_s3, 1) ::
+  LJmp "Lloop" ::
+  LLabel "Lendargs" ::
+  LLoad(reg_a0, reg_fp, -8, archi_mas ()) ::
+  LLoad(reg_a1, reg_fp, -16, archi_mas ()) ::
+  LLoad(reg_a2, reg_fp, -24, archi_mas ()) ::
+  LLoad(reg_a3, reg_fp, -32, archi_mas ()) ::
+  LLoad(reg_a4, reg_fp, -40, archi_mas ()) ::
+  LLoad(reg_a5, reg_fp, -48, archi_mas ()) ::
+  LLoad(reg_a6, reg_fp, -56, archi_mas ()) ::
+  LLoad(reg_a7, reg_fp, -64, archi_mas ()) ::
+  [] |>
+  List.iter (dump_riscv_instr oc)
 
 let rv_store () =
-  Format.sprintf "s%c" !Archi.instrsuffix
+  Format.sprintf "s%c" (Archi.instrsuffix ())
 let rv_load () =
-  Format.sprintf "l%c" !Archi.instrsuffix
+  Format.sprintf "l%c" (Archi.instrsuffix ())
 
-let riscv_prelude oc =
+let riscv_prelude target oc =
+  Format.fprintf oc ".include \"syscall_numbers.s\"\n";
   Format.fprintf oc ".globl _start\n";
   Format.fprintf oc "_start:\n";
   Format.fprintf oc "  lui gp, %%hi(_heap_start)\n";
@@ -212,22 +173,19 @@ let riscv_prelude oc =
   Format.fprintf oc "  addi t0, gp, 8\n";
   Format.fprintf oc "  %s t0, 0(gp)\n" (rv_store ());
   Format.fprintf oc "  mv s0, sp\n";
-  Format.fprintf oc "  add sp, sp, -72\n";
-  riscv_load_args oc >>= fun _ -> 
+  riscv_load_args target oc ;
   Format.fprintf oc "jal ra, main\n";
   Format.fprintf oc "mv s0, a0\n";
   Format.fprintf oc "jal ra, println\n";
   Format.fprintf oc "mv a0, s0\n";
   Format.fprintf oc "jal ra, print_int\n";
   Format.fprintf oc "jal ra, println\n";
-  Format.fprintf oc "addi a7, zero, 93\n";
-  Format.fprintf oc "ecall\n";
-  OK ()
+  Format.fprintf oc "addi a7, zero, SYSCALL_EXIT\n";
+  Format.fprintf oc "ecall\n"
 
-let dump_riscv_prog oc lp : unit res =
-  (if !nostart then OK () else riscv_prelude oc) >>= fun _ ->
+let dump_riscv_prog target oc lp : unit =
+  (if !nostart then () else riscv_prelude target oc);
   Format.fprintf oc ".global main\n";
-  list_iter_res (function
+  List.iter (function
         (fname, Gfun f) -> dump_riscv_fun oc (fname,f)
-    ) lp >>= fun _ ->
-  riscv_fun_load_arg oc ()
+    ) lp
diff --git a/src/rtl_gen.ml b/src/rtl_gen.ml
index e9b62e0..ce1eb8f 100644
--- a/src/rtl_gen.ml
+++ b/src/rtl_gen.ml
@@ -4,6 +4,9 @@ open Cfg
 open Rtl
 open Prog
 open Utils
+open Report
+open Rtl_print
+open Options
 
 (* Une partie de la génération de RTL consiste à allouer les variables dans des
    pseudo-registres RTL.
@@ -89,3 +92,9 @@ let rtl_of_gdef funname = function
     Gfun f -> Gfun (rtl_instrs_of_cfg_fun funname f)
 
 let rtl_of_cfg cp = List.map (fun (s, gd) -> (s, rtl_of_gdef s gd)) cp
+
+let pass_rtl_gen cfg =
+  let rtl = rtl_of_cfg cfg in
+  dump !rtl_dump dump_rtl_prog rtl
+    (fun file () -> add_to_report "rtl" "RTL" (Code (file_contents file)));
+  OK rtl
diff --git a/src/test_lexer.ml b/src/test_lexer.ml
index fa64acc..6e3adc9 100644
--- a/src/test_lexer.ml
+++ b/src/test_lexer.ml
@@ -8,6 +8,10 @@ let () =
   let regexp_list = [
     (keyword_regexp "while",    fun s -> Some (SYM_WHILE));
     (keyword_regexp "if",    fun s -> Some (SYM_IF));
+    (Cat(letter_regexp,
+         Star(identifier_material)),
+     fun s -> Some (SYM_IDENTIFIER s));
+
   ] in
   (* Décommentez la ligne suivante pour tester sur la vraie liste d'expressions
      régulières. *)
@@ -29,4 +33,82 @@ let () =
   dfa_to_dot oc dfa alphabet;
   close_out oc;
 
+  let n =
+    {
+      nfa_states = [1; 2; 3; 4] ;
+      nfa_initial = [1] ;
+      nfa_final = [(3, fun s -> None); (4, fun s -> None)];
+      nfa_step = fun q ->
+        match q with
+        | 1 -> [(Some (Set.singleton '0'), 2); (None, 3)]
+        | 2 -> [(Some (Set.singleton '1'), 2); (Some (Set.singleton '1'), 4)]
+        | 3 -> [(Some (Set.singleton '0'), 4); (None, 2)]
+        | 4 -> [(Some (Set.singleton '0'), 2)]
+        | _ -> []
+
+    } in
+
+  let expect_set str s_got s_exp =
+    if Set.equal s_got s_exp
+    then Printf.printf "[OK] %s\n" str
+    else Printf.printf "[KO] %s : got %s, expected %s\n" str (string_of_int_set s_got)
+        (string_of_int_set s_exp) in
+
+  let ec1 = epsilon_closure n 1 in
+  let ec2 = epsilon_closure n 2 in
+  let ec3 = epsilon_closure n 3 in
+  let ec4 = epsilon_closure n 4 in
+
+  expect_set "epsilon_closure 1" ec1 (Set.of_list [1;2;3]);
+  expect_set "epsilon_closure 2" ec2 (Set.of_list [2]);
+  expect_set "epsilon_closure 3" ec3 (Set.of_list [2;3]);
+  expect_set "epsilon_closure 4" ec4 (Set.of_list [4]);
+
+  expect_set "dfa_initial_state" (dfa_initial_state n) (Set.of_list [1;2;3]);
+
+  let string_of_opt_tok ot =
+    match ot with
+      None -> "None"
+    | Some t -> Printf.sprintf "Some (%s)" (string_of_symbol t)
+  in
+
+  let expect_token_option str to_got to_exp =
+    if to_got = to_exp
+    then Printf.printf "[OK] %s\n" str
+    else Printf.printf "[KO] %s : got %s, expected %s\n" str (string_of_opt_tok to_got)
+        (string_of_opt_tok to_exp)
+  in
+
+  expect_token_option "min_priority 1" (min_priority [SYM_EOF; SYM_IDENTIFIER "bla"; SYM_WHILE]) (Some SYM_WHILE);
+  expect_token_option "min_priority 2" (min_priority [SYM_EOF; SYM_IDENTIFIER "bla"]) (Some (SYM_IDENTIFIER "bla"));
+  expect_token_option "min_priority 3" (min_priority [SYM_EOF; SYM_WHILE]) (Some SYM_WHILE);
+
+  expect_token_option "min_priority 4" (min_priority []) None;
+
+  let set_incl s1 s2 =
+    Set.for_all (fun s -> Set.exists (Set.equal s) s2) s1
+  in
+
+  let set_eq s1 s2 = set_incl s1 s2 && set_incl s2 s1 in
+
+  let string_of_int_set_set s =
+    Set.map (fun s ->
+        Printf.sprintf "{%s}" (String.concat "," (Set.to_list (Set.map string_of_int s)))
+      ) s
+    |> Set.to_list
+    |> String.concat ", "
+    |> Printf.sprintf "{%s}"
+  in
+
+  let expect_set_set str (set_got : int set set) (set_exp : int set set) =
+    if set_eq set_got set_exp
+    then Printf.printf "[OK] %s\n" str
+    else Printf.printf "[KO] %s : got %s, expected %s\n" str
+        (string_of_int_set_set set_got)
+        (string_of_int_set_set set_exp)
+  in
+
+  let table = Hashtbl.create 10 in
+  build_dfa_table table n (dfa_initial_state n);
+  expect_set_set "dfa states" (Hashtbl.keys table |> Set.of_enum) (Set.of_list [Set.of_list [1;2;3]; Set.of_list [2;4]; Set.of_list [2]])
 
diff --git a/src/tokenize.ml b/src/tokenize.ml
new file mode 100644
index 0000000..8a14439
--- /dev/null
+++ b/src/tokenize.ml
@@ -0,0 +1,23 @@
+open Batteries
+open Lexer_generator
+open Report
+open Utils
+open Options
+open Symbols
+
+let tokenize file =
+  Lexer_generator.tokenize_file file >>= fun tokens ->
+  OK (List.map (fun tok -> (tok, None)) tokens)
+
+
+let pass_tokenize file =
+  tokenize file >>* (fun msg ->
+      record_compile_result ~error:(Some msg) "Lexing";
+      Error msg
+    ) $ fun tokens ->
+      record_compile_result "Lexing";
+      dump !show_tokens (fun oc tokens ->
+          List.iter (fun (tok,_) ->
+              Format.fprintf oc "%s\n" (string_of_symbol tok)
+            ) tokens) tokens (fun f () -> add_to_report "lexer" "Lexer" (Code (file_contents f)));
+      OK tokens
diff --git a/src/utils.ml b/src/utils.ml
index a954803..aec74d5 100644
--- a/src/utils.ml
+++ b/src/utils.ml
@@ -113,7 +113,7 @@ let read_mem_bytes_as_int mem addr n =
 
 
 let read_mem_int mem addr =
-  read_mem_bytes_as_int mem addr !Archi.wordsize
+  read_mem_bytes_as_int mem addr (Archi.wordsize ())
 
 let read_mem_char mem addr =
   read_mem_bytes mem addr 1 >>= fun bl ->
@@ -318,3 +318,33 @@ let dump file (dumpf : _ -> 'a -> unit) (p: 'a) (additional_command: string -> u
       dumpf oc p; close ();
       if file <> "-" then additional_command file ()
   end
+
+
+let process_output_to_list2 = fun command ->
+  let chan = Unix.open_process_in command in
+  let res = ref ([] : string list) in
+  let rec process_otl_aux () =
+    let e = input_line chan in
+    res := e::!res;
+    process_otl_aux() in
+  try process_otl_aux ()
+  with End_of_file ->
+    let stat = Unix.close_process_in chan in (List.rev !res,stat)
+
+let cmd_to_list command =
+  let (l,_) = process_output_to_list2 command in l
+
+let file_contents file =
+  match
+    let ic = open_in file in
+    let rec aux s () =
+      try
+        let line = input_line ic in  (* read line from in_channel and discard \n *)
+        aux (s ^ line ^ "\n") ()   (* close the input channel *)
+      with e ->                      (* some unexpected exception occurs *)
+        close_in_noerr ic;           (* emergency closing *)
+        s in
+    aux "" ()
+  with
+  | exception Sys_error _ -> failwith (Printf.sprintf "Could not open file %s\n" file)
+  | x -> x
diff --git a/tests/Makefile b/tests/Makefile
index d6b8429..78c3657 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,14 +1,20 @@
 # if make is launched with a DIR variable, pass it as the -f option to test.py
 # 'make DIR=basic/mul*.e' launches all the files starting with mul in the basic directory
 # otherwise, use basic/*.e as a default
-FILES := $(if $(DIR),-f $(DIR),-f basic/*.e)
+FILES := $(if $(DIR),$(DIR),basic/*.e)
 
 OPTS := $(if $(OPTS), $(OPTS),)
 
 .PHONY: all
 all: ../main.native
-	./test.py $(FILES) $(OPTS)
+	./test.py -f $(FILES) $(OPTS)
+
+expect: ../main.native
+	OCAMLRUNPARAM=b ./test.py --make-expect -f $(FILES) $(OPTS) --args 1 2 3
+	OCAMLRUNPARAM=b ./test.py --make-expect -f $(FILES) $(OPTS) --args 14 12 3 8 12
+	for f in $(FILES); do ../main.native -f $$f -show-tokens $$f.expect_lexer; done
+
 
 clean:
-	find . -name '*.ltl' -or -name '*.cfg' -or -name '*.exe' -or -name '*.s' -or -name '*.rtl' -or -name '*.ast' -or -name '*.cfg0' -or -name '*.cfg1' -or -name '*.cfg2' -or -name '*.cfg3' -or -name '*.riscv' -or -name '*.dump' -or	-name '*.linear1' -or -name '*.linear' -or -name '*.html' -or -name '*.svg'	-or -name '*.html' -or -name '*.lex' -or -name "*.json" | xargs -I{} rm {}
+	find . -name '*.rig' -or -name '*.ltl' -or -name '*.cfg' -or -name '*.exe' -or -name '*.s' -or -name '*.rtl' -or -name '*.ast' -or -name '*.cfg0' -or -name '*.cfg1' -or -name '*.cfg2' -or -name '*.cfg3' -or -name '*.riscv' -or -name '*.dump' -or	-name '*.linear1' -or -name '*.linear' -or -name '*.html' -or -name '*.svg'	-or -name '*.html' -or -name '*.lex' -or -name "*.json" | xargs -I{} rm {}
 	rm -rf __pycache__
diff --git a/tests/funcall/argswap.e.expect_lexer b/tests/funcall/argswap.e.expect_lexer
index 89b98c3..2c8a87d 100644
--- a/tests/funcall/argswap.e.expect_lexer
+++ b/tests/funcall/argswap.e.expect_lexer
@@ -5,12 +5,12 @@ SYM_COMMA
 SYM_IDENTIFIER(b)
 SYM_RPARENTHESIS
 SYM_LBRACE
-SYM_PRINT
+SYM_IDENTIFIER(print)
 SYM_LPARENTHESIS
 SYM_IDENTIFIER(a)
 SYM_RPARENTHESIS
 SYM_SEMICOLON
-SYM_PRINT
+SYM_IDENTIFIER(print)
 SYM_LPARENTHESIS
 SYM_IDENTIFIER(b)
 SYM_RPARENTHESIS
@@ -30,12 +30,12 @@ SYM_COMMA
 SYM_IDENTIFIER(b)
 SYM_RPARENTHESIS
 SYM_LBRACE
-SYM_PRINT
+SYM_IDENTIFIER(print)
 SYM_LPARENTHESIS
 SYM_IDENTIFIER(a)
 SYM_RPARENTHESIS
 SYM_SEMICOLON
-SYM_PRINT
+SYM_IDENTIFIER(print)
 SYM_LPARENTHESIS
 SYM_IDENTIFIER(b)
 SYM_RPARENTHESIS
diff --git a/tests/funcall/print_and_fun.e.expect_lexer b/tests/funcall/print_and_fun.e.expect_lexer
index d8e4934..834218f 100644
--- a/tests/funcall/print_and_fun.e.expect_lexer
+++ b/tests/funcall/print_and_fun.e.expect_lexer
@@ -21,12 +21,12 @@ SYM_LPARENTHESIS
 SYM_INTEGER(8)
 SYM_RPARENTHESIS
 SYM_SEMICOLON
-SYM_PRINT
+SYM_IDENTIFIER(print)
 SYM_LPARENTHESIS
 SYM_IDENTIFIER(a)
 SYM_RPARENTHESIS
 SYM_SEMICOLON
-SYM_PRINT
+SYM_IDENTIFIER(print)
 SYM_LPARENTHESIS
 SYM_IDENTIFIER(b)
 SYM_RPARENTHESIS
diff --git a/tests/globals/arrayptr.e b/tests/globals/arrayptr.e
new file mode 100644
index 0000000..e5d1b0d
--- /dev/null
+++ b/tests/globals/arrayptr.e
@@ -0,0 +1,24 @@
+struct S {
+  int x;
+  int y;
+  int z;
+};
+
+struct S *p;
+
+struct S t[3];
+
+int main(){
+  (t[0]).x = 1;
+  (t[0]).y = 2;
+  (t[0]).z = 3;
+  (t[1]).x = 4;
+  (t[1]).y = 5;
+  (t[1]).z = 6;
+  (t[2]).x = 7;
+  (t[2]).y = 8;
+  (t[2]).z = 9;
+  p = &(t[2]);
+
+  return (*p).y;
+}
diff --git a/tests/globals/arrayptr.e.expect_14_12_3_8_12 b/tests/globals/arrayptr.e.expect_14_12_3_8_12
new file mode 100644
index 0000000..61b83a8
--- /dev/null
+++ b/tests/globals/arrayptr.e.expect_14_12_3_8_12
@@ -0,0 +1 @@
+{"output": "", "error": null, "retval": 8}
\ No newline at end of file
diff --git a/tests/globals/arrayptr.e.expect_1_2_3 b/tests/globals/arrayptr.e.expect_1_2_3
new file mode 100644
index 0000000..61b83a8
--- /dev/null
+++ b/tests/globals/arrayptr.e.expect_1_2_3
@@ -0,0 +1 @@
+{"output": "", "error": null, "retval": 8}
\ No newline at end of file
diff --git a/tests/globals/arrayptr.e.expect_lexer b/tests/globals/arrayptr.e.expect_lexer
new file mode 100644
index 0000000..1c2e857
--- /dev/null
+++ b/tests/globals/arrayptr.e.expect_lexer
@@ -0,0 +1,150 @@
+SYM_STRUCT
+SYM_IDENTIFIER(S)
+SYM_LBRACE
+SYM_INT
+SYM_IDENTIFIER(x)
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(y)
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(z)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_SEMICOLON
+SYM_STRUCT
+SYM_IDENTIFIER(S)
+SYM_ASTERISK
+SYM_IDENTIFIER(p)
+SYM_SEMICOLON
+SYM_STRUCT
+SYM_IDENTIFIER(S)
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(3)
+SYM_RBRACKET
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(main)
+SYM_LPARENTHESIS
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(0)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(x)
+SYM_ASSIGN
+SYM_INTEGER(1)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(0)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(y)
+SYM_ASSIGN
+SYM_INTEGER(2)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(0)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(z)
+SYM_ASSIGN
+SYM_INTEGER(3)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(1)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(x)
+SYM_ASSIGN
+SYM_INTEGER(4)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(1)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(y)
+SYM_ASSIGN
+SYM_INTEGER(5)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(1)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(z)
+SYM_ASSIGN
+SYM_INTEGER(6)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(2)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(x)
+SYM_ASSIGN
+SYM_INTEGER(7)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(2)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(y)
+SYM_ASSIGN
+SYM_INTEGER(8)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(2)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(z)
+SYM_ASSIGN
+SYM_INTEGER(9)
+SYM_SEMICOLON
+SYM_IDENTIFIER(p)
+SYM_ASSIGN
+SYM_AMPERSAND
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(2)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RETURN
+SYM_LPARENTHESIS
+SYM_ASTERISK
+SYM_IDENTIFIER(p)
+SYM_RPARENTHESIS
+SYM_POINT
+SYM_IDENTIFIER(y)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_EOF
diff --git a/tests/globals/globtab2.e b/tests/globals/globtab2.e
new file mode 100644
index 0000000..c60b2cb
--- /dev/null
+++ b/tests/globals/globtab2.e
@@ -0,0 +1,43 @@
+int IMG[64];
+int NBCOL = 8;
+int NBROW = 8;
+
+void draw(int color, int x, int y){
+  int pos = (y * NBCOL + x);
+  if (pos < NBCOL * NBROW){
+	  *(IMG + pos) = color;
+  }
+}
+
+int get(int x, int y){
+  int pos = (y * NBCOL + x);
+  if (pos < NBCOL * NBROW){
+    return *(IMG + pos);
+  }
+  return -1;
+}
+
+void draw_world(){
+  int i = 0;
+  int j = 0;
+  while (j < NBROW) {
+    i = 0;
+    while (i < NBCOL) {
+      if(get(i, j) != 0){
+        print_char('#');
+      } else {
+        print_char(' ');
+      }
+      i = i + 1;
+    }
+    print_char('\n');
+    j = j + 1;
+  }
+}
+
+int main(){
+  draw(0xff0000, 1, 1);
+  print(get(1,1));
+  draw_world();
+  return 0;
+}
diff --git a/tests/globals/globtab2.e.expect_14_12_3_8_12 b/tests/globals/globtab2.e.expect_14_12_3_8_12
new file mode 100644
index 0000000..b09bb6f
--- /dev/null
+++ b/tests/globals/globtab2.e.expect_14_12_3_8_12
@@ -0,0 +1 @@
+{"output": "16711680\n        \n #      \n        \n        \n        \n        \n        \n        \n", "error": null, "retval": 0}
\ No newline at end of file
diff --git a/tests/globals/globtab2.e.expect_1_2_3 b/tests/globals/globtab2.e.expect_1_2_3
new file mode 100644
index 0000000..b09bb6f
--- /dev/null
+++ b/tests/globals/globtab2.e.expect_1_2_3
@@ -0,0 +1 @@
+{"output": "16711680\n        \n #      \n        \n        \n        \n        \n        \n        \n", "error": null, "retval": 0}
\ No newline at end of file
diff --git a/tests/globals/globtab2.e.expect_lexer b/tests/globals/globtab2.e.expect_lexer
new file mode 100644
index 0000000..c92540d
--- /dev/null
+++ b/tests/globals/globtab2.e.expect_lexer
@@ -0,0 +1,217 @@
+SYM_INT
+SYM_IDENTIFIER(IMG)
+SYM_LBRACKET
+SYM_INTEGER(64)
+SYM_RBRACKET
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(NBCOL)
+SYM_ASSIGN
+SYM_INTEGER(8)
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(NBROW)
+SYM_ASSIGN
+SYM_INTEGER(8)
+SYM_SEMICOLON
+SYM_VOID
+SYM_IDENTIFIER(draw)
+SYM_LPARENTHESIS
+SYM_INT
+SYM_IDENTIFIER(color)
+SYM_COMMA
+SYM_INT
+SYM_IDENTIFIER(x)
+SYM_COMMA
+SYM_INT
+SYM_IDENTIFIER(y)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_INT
+SYM_IDENTIFIER(pos)
+SYM_ASSIGN
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(y)
+SYM_ASTERISK
+SYM_IDENTIFIER(NBCOL)
+SYM_PLUS
+SYM_IDENTIFIER(x)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_IF
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(pos)
+SYM_LT
+SYM_IDENTIFIER(NBCOL)
+SYM_ASTERISK
+SYM_IDENTIFIER(NBROW)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_ASTERISK
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(IMG)
+SYM_PLUS
+SYM_IDENTIFIER(pos)
+SYM_RPARENTHESIS
+SYM_ASSIGN
+SYM_IDENTIFIER(color)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_RBRACE
+SYM_INT
+SYM_IDENTIFIER(get)
+SYM_LPARENTHESIS
+SYM_INT
+SYM_IDENTIFIER(x)
+SYM_COMMA
+SYM_INT
+SYM_IDENTIFIER(y)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_INT
+SYM_IDENTIFIER(pos)
+SYM_ASSIGN
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(y)
+SYM_ASTERISK
+SYM_IDENTIFIER(NBCOL)
+SYM_PLUS
+SYM_IDENTIFIER(x)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_IF
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(pos)
+SYM_LT
+SYM_IDENTIFIER(NBCOL)
+SYM_ASTERISK
+SYM_IDENTIFIER(NBROW)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_RETURN
+SYM_ASTERISK
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(IMG)
+SYM_PLUS
+SYM_IDENTIFIER(pos)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_RETURN
+SYM_MINUS
+SYM_INTEGER(1)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_VOID
+SYM_IDENTIFIER(draw_world)
+SYM_LPARENTHESIS
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_INT
+SYM_IDENTIFIER(i)
+SYM_ASSIGN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(j)
+SYM_ASSIGN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_WHILE
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(j)
+SYM_LT
+SYM_IDENTIFIER(NBROW)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_IDENTIFIER(i)
+SYM_ASSIGN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_WHILE
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(i)
+SYM_LT
+SYM_IDENTIFIER(NBCOL)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_IF
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(get)
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(i)
+SYM_COMMA
+SYM_IDENTIFIER(j)
+SYM_RPARENTHESIS
+SYM_NOTEQ
+SYM_INTEGER(0)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_IDENTIFIER(print_char)
+SYM_LPARENTHESIS
+SYM_CHARACTER(#)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_ELSE
+SYM_LBRACE
+SYM_IDENTIFIER(print_char)
+SYM_LPARENTHESIS
+SYM_CHARACTER( )
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_IDENTIFIER(i)
+SYM_ASSIGN
+SYM_IDENTIFIER(i)
+SYM_PLUS
+SYM_INTEGER(1)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_IDENTIFIER(print_char)
+SYM_LPARENTHESIS
+SYM_CHARACTER(
+)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_IDENTIFIER(j)
+SYM_ASSIGN
+SYM_IDENTIFIER(j)
+SYM_PLUS
+SYM_INTEGER(1)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_RBRACE
+SYM_INT
+SYM_IDENTIFIER(main)
+SYM_LPARENTHESIS
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_IDENTIFIER(draw)
+SYM_LPARENTHESIS
+SYM_INTEGER(16711680)
+SYM_COMMA
+SYM_INTEGER(1)
+SYM_COMMA
+SYM_INTEGER(1)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_IDENTIFIER(print)
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(get)
+SYM_LPARENTHESIS
+SYM_INTEGER(1)
+SYM_COMMA
+SYM_INTEGER(1)
+SYM_RPARENTHESIS
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_IDENTIFIER(draw_world)
+SYM_LPARENTHESIS
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RETURN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_EOF
diff --git a/tests/invader/constants.s b/tests/invader/constants.S
similarity index 100%
rename from tests/invader/constants.s
rename to tests/invader/constants.S
diff --git a/tests/invader/crt.S b/tests/invader/crt.S
new file mode 100644
index 0000000..e5a63ba
--- /dev/null
+++ b/tests/invader/crt.S
@@ -0,0 +1 @@
+.include "crtm.S"
diff --git a/tests/invader/crt.s b/tests/invader/crt.s
deleted file mode 100644
index dcdf1e1..0000000
--- a/tests/invader/crt.s
+++ /dev/null
@@ -1 +0,0 @@
-.include "crtm.s"
diff --git a/tests/invader/crtm.s b/tests/invader/crtm.S
similarity index 96%
rename from tests/invader/crtm.s
rename to tests/invader/crtm.S
index 158b3ce..e68162c 100644
--- a/tests/invader/crtm.s
+++ b/tests/invader/crtm.S
@@ -1,7 +1,7 @@
 # See LICENSE for license details.
 
-.include "macros.s"
-.include "constants.s"
+.include "macros.S"
+.include "constants.S"
 
 #
 # start of trap handler
diff --git a/tests/invader/include/font.h b/tests/invader/include/font.h
index f65d48d..58f066b 100644
--- a/tests/invader/include/font.h
+++ b/tests/invader/include/font.h
@@ -23,6 +23,6 @@
 
 // Constant: font8x8_basic
 // Contains an 8x8 font map for unicode points U+0000 - U+007F (basic latin)
-char font8x8_basic[256][8];
+extern char font8x8_basic[256][8];
 
 #endif
diff --git a/tests/invader/macros.s b/tests/invader/macros.S
similarity index 100%
rename from tests/invader/macros.s
rename to tests/invader/macros.S
diff --git a/tests/ptr/weird-ptr.e b/tests/ptr/weird-ptr.e
new file mode 100644
index 0000000..c6381bd
--- /dev/null
+++ b/tests/ptr/weird-ptr.e
@@ -0,0 +1,11 @@
+int ignore(int * x){
+  return 0;
+}
+int main(){
+  int x = 0;
+  int y = 0;
+  ignore(&x); // force x on the stack
+  int* p = &y - 1;
+  *p = 3;
+  return x;
+}
diff --git a/tests/ptr/weird-ptr.e.expect_14_12_3_8_12 b/tests/ptr/weird-ptr.e.expect_14_12_3_8_12
new file mode 100644
index 0000000..ff173ec
--- /dev/null
+++ b/tests/ptr/weird-ptr.e.expect_14_12_3_8_12
@@ -0,0 +1 @@
+{"output": "", "error": null, "retval": 3}
\ No newline at end of file
diff --git a/tests/ptr/weird-ptr.e.expect_1_2_3 b/tests/ptr/weird-ptr.e.expect_1_2_3
new file mode 100644
index 0000000..ff173ec
--- /dev/null
+++ b/tests/ptr/weird-ptr.e.expect_1_2_3
@@ -0,0 +1 @@
+{"output": "", "error": null, "retval": 3}
\ No newline at end of file
diff --git a/tests/ptr/weird-ptr.e.expect_lexer b/tests/ptr/weird-ptr.e.expect_lexer
new file mode 100644
index 0000000..4862f4d
--- /dev/null
+++ b/tests/ptr/weird-ptr.e.expect_lexer
@@ -0,0 +1,52 @@
+SYM_INT
+SYM_IDENTIFIER(ignore)
+SYM_LPARENTHESIS
+SYM_INT
+SYM_ASTERISK
+SYM_IDENTIFIER(x)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_RETURN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_INT
+SYM_IDENTIFIER(main)
+SYM_LPARENTHESIS
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_INT
+SYM_IDENTIFIER(x)
+SYM_ASSIGN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(y)
+SYM_ASSIGN
+SYM_INTEGER(0)
+SYM_SEMICOLON
+SYM_IDENTIFIER(ignore)
+SYM_LPARENTHESIS
+SYM_AMPERSAND
+SYM_IDENTIFIER(x)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_INT
+SYM_ASTERISK
+SYM_IDENTIFIER(p)
+SYM_ASSIGN
+SYM_AMPERSAND
+SYM_IDENTIFIER(y)
+SYM_MINUS
+SYM_INTEGER(1)
+SYM_SEMICOLON
+SYM_ASTERISK
+SYM_IDENTIFIER(p)
+SYM_ASSIGN
+SYM_INTEGER(3)
+SYM_SEMICOLON
+SYM_RETURN
+SYM_IDENTIFIER(x)
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_EOF
diff --git a/tests/real_args/show_args.e b/tests/real_args/show_args.e
deleted file mode 100644
index 31100a7..0000000
--- a/tests/real_args/show_args.e
+++ /dev/null
@@ -1,15 +0,0 @@
-int main(int argc, char* argv[]){
-  print_string("Program launched with ");
-  print_int(argc);
-  print_string(" arguments\n");
-  int i = 0;
-  while(i < argc){
-    print_string("argv[");
-    print_int(i);
-    print_string("] = ");
-    print_string(argv[i]);
-    print_string("\n");
-    i = i + 1;
-  }
-  return argc;
-}
diff --git a/tests/strings/rot13.e b/tests/strings/rot13.e
deleted file mode 100644
index 5b72b2f..0000000
--- a/tests/strings/rot13.e
+++ /dev/null
@@ -1,44 +0,0 @@
-int and(int a, int b){
-  if(a != 0){ return b; }
-  return 0;
-}
-
-int rot13c(char x){
-  if('A' <= x){
-    if (x <= 'Z'){
-      return 'A' + (x - 'A' + 13) % 26;
-    }
-  }
-  if('a' <= x){
-    if (x <= 'z'){
-      return 'a' + (x - 'a' + 13) % 26;
-    }
-  }
-  return x;
-}
-
-int rot13(char* c){
-  int i = 0;
-
-  while(c[i] != 0){
-    c[i] = rot13c(c[i]);
-    i = i + 1;
-  }
-  return 0;
-}
-int main(int argc,char* argv[]){
-  int a = atoi(argv[1]);
-  int b = atoi(argv[2]);
-  char c[10];
-  c[0] = 'C';
-  c[1] = 'o';
-  c[2] = 'u';
-  c[3] = 'c';
-  c[4] = 'o';
-  c[5] = 'u';
-  c[6] = 0;
-
-  rot13(c);
-  print_string(c);
-  return 0;
-}
diff --git a/tests/strings/string.e b/tests/strings/string.e
deleted file mode 100644
index 05def8a..0000000
--- a/tests/strings/string.e
+++ /dev/null
@@ -1,13 +0,0 @@
-int main(int argc,char* argv[]){
-  char b[10];
-  b[0] = 'H';
-  b[1] = 'e';
-  b[2] = 'l';
-  b[3] = 'l';
-  b[4] = 'o';
-  b[5] = '!';
-  b[6] = 0;
-
-  print_string(b);
-  return 0;
-}
diff --git a/tests/strings/stringlit.e b/tests/strings/stringlit.e
deleted file mode 100644
index 4e84976..0000000
--- a/tests/strings/stringlit.e
+++ /dev/null
@@ -1,5 +0,0 @@
-int main(int argc,char* argv[]){
-  char* c = "I am a string literal! Yay!\n";
-  print_string(c);
-  return 0;
-}
diff --git a/tests/strings/stringlit2.e b/tests/strings/stringlit2.e
deleted file mode 100644
index 643aeba..0000000
--- a/tests/strings/stringlit2.e
+++ /dev/null
@@ -1,4 +0,0 @@
-int main(int argc,char* argv[]){
-  print_string("I am a string literal! Yay!\n");
-  return 0;
-}
diff --git a/tests/strings/stringlit3.e b/tests/strings/stringlit3.e
deleted file mode 100644
index b0d76cf..0000000
--- a/tests/strings/stringlit3.e
+++ /dev/null
@@ -1,6 +0,0 @@
-int main(int argc,char* argv[]){
-  char *c = "I am a string literal! Yay!\n";
-  c[5] = 'A';
-  print_string(c);
-  return 0;
-}
diff --git a/tests/strings/stringtab.e b/tests/strings/stringtab.e
deleted file mode 100644
index 6afea99..0000000
--- a/tests/strings/stringtab.e
+++ /dev/null
@@ -1,10 +0,0 @@
-int main(int argc,char* argv[]){
-  char* c = "Coucou\n";
-  char* d = "Hello!\n";
-  char* e[2];
-  e[0] = c;
-  e[1] = d;
-  print_string(e[0]);
-  print_string(e[1]);
-  return 0;
-}
diff --git a/tests/structs/structtab.e b/tests/structs/structtab.e
index 5fd4eac..f28c3d3 100644
--- a/tests/structs/structtab.e
+++ b/tests/structs/structtab.e
@@ -2,7 +2,7 @@ struct S {
   int t[4];
 };
 
-int main(int argc, char* argv[]){
+int main(){
   struct S s;
   (s.t)[0] = 1;
   print_int((s.t)[0]);
diff --git a/tests/structs/structtab.e.expect_14_12_3_8_12 b/tests/structs/structtab.e.expect_14_12_3_8_12
new file mode 100644
index 0000000..8858d4c
--- /dev/null
+++ b/tests/structs/structtab.e.expect_14_12_3_8_12
@@ -0,0 +1 @@
+{"output": "1", "error": null, "retval": 1}
\ No newline at end of file
diff --git a/tests/structs/structtab.e.expect_1_2_3 b/tests/structs/structtab.e.expect_1_2_3
new file mode 100644
index 0000000..8858d4c
--- /dev/null
+++ b/tests/structs/structtab.e.expect_1_2_3
@@ -0,0 +1 @@
+{"output": "1", "error": null, "retval": 1}
\ No newline at end of file
diff --git a/tests/structs/structtab.e.expect_lexer b/tests/structs/structtab.e.expect_lexer
new file mode 100644
index 0000000..1566d17
--- /dev/null
+++ b/tests/structs/structtab.e.expect_lexer
@@ -0,0 +1,55 @@
+SYM_STRUCT
+SYM_IDENTIFIER(S)
+SYM_LBRACE
+SYM_INT
+SYM_IDENTIFIER(t)
+SYM_LBRACKET
+SYM_INTEGER(4)
+SYM_RBRACKET
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_SEMICOLON
+SYM_INT
+SYM_IDENTIFIER(main)
+SYM_LPARENTHESIS
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_STRUCT
+SYM_IDENTIFIER(S)
+SYM_IDENTIFIER(s)
+SYM_SEMICOLON
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(s)
+SYM_POINT
+SYM_IDENTIFIER(t)
+SYM_RPARENTHESIS
+SYM_LBRACKET
+SYM_INTEGER(0)
+SYM_RBRACKET
+SYM_ASSIGN
+SYM_INTEGER(1)
+SYM_SEMICOLON
+SYM_IDENTIFIER(print_int)
+SYM_LPARENTHESIS
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(s)
+SYM_POINT
+SYM_IDENTIFIER(t)
+SYM_RPARENTHESIS
+SYM_LBRACKET
+SYM_INTEGER(0)
+SYM_RBRACKET
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RETURN
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(s)
+SYM_POINT
+SYM_IDENTIFIER(t)
+SYM_RPARENTHESIS
+SYM_LBRACKET
+SYM_INTEGER(0)
+SYM_RBRACKET
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_EOF
diff --git a/tests/test.py b/tests/test.py
index a0b2589..fd9e297 100755
--- a/tests/test.py
+++ b/tests/test.py
@@ -21,7 +21,6 @@ parser.add_argument("-p", "--passes",
                     nargs='+',
                     default=["e-run",
                              "cfg-run",
-                             "cfg-run-after-loop",
                              "cfg-run-after-cp",
                              "cfg-run-after-dae",
                              "cfg-run-after-ne",
@@ -144,13 +143,18 @@ class CommandExecutor(Thread):
         self.stderr = process['stderr'].decode('utf8')
         json_file_name = self.f + ".json"
         j = []
-        with open(json_file_name, 'r') as jsonfile:
-            try:
-                j = json.load(jsonfile)
-            except:
-                j.append({'retval':-1,
-                          'output': display_verbatim(self.stdout),
-                          'error': display_verbatim(self.stderr)})
+        try:
+            with open(json_file_name, 'r') as jsonfile:
+                try:
+                    j = json.load(jsonfile)
+                except:
+                    j.append({'retval':-1,
+                              'output': display_verbatim(self.stdout),
+                              'error': display_verbatim(self.stderr)})
+        except:
+            j.append({'retval':-1,
+                      'output': display_verbatim(self.stdout),
+                      'error': "No file {} generated...".format(json_file_name)})
         old_ret = None
         old_out = None
         old_err = None
@@ -185,7 +189,7 @@ class CommandExecutor(Thread):
                     self.lastcorrectstep = curcol
                 self.s += make_td(["Ret = {}.<br>Output = <pre>'{}'</pre>{}<br>Time: {:.2f} seconds.<br>".
                                    format(r['retval'], r['output'],
-                                          "Error: "+r['error'] if r['error'] != None else "",
+                                          "Error: <pre>"+r['error']+"</pre>" if r['error'] != None else "",
                                           r['time']),
                                    "class=\"{}\"".format(cls)])
                 curcol+=1
diff --git a/tests/type_funcall/argswap-simple.e b/tests/type_funcall/argswap-simple.e
new file mode 100644
index 0000000..7af7b6a
--- /dev/null
+++ b/tests/type_funcall/argswap-simple.e
@@ -0,0 +1,9 @@
+int g(int a,int b){
+  return (b - a);
+}
+int f(int a, int b){
+  return g(b, a);
+}
+int main(int x, int y){
+  return f(x, y);
+}
diff --git a/tests/type_funcall/argswap-simple.e.expect_14_12_3_8_12 b/tests/type_funcall/argswap-simple.e.expect_14_12_3_8_12
new file mode 100644
index 0000000..df1c5a5
--- /dev/null
+++ b/tests/type_funcall/argswap-simple.e.expect_14_12_3_8_12
@@ -0,0 +1 @@
+{"output": "", "error": null, "retval": 2}
\ No newline at end of file
diff --git a/tests/type_funcall/argswap-simple.e.expect_1_2_3 b/tests/type_funcall/argswap-simple.e.expect_1_2_3
new file mode 100644
index 0000000..f8d80dd
--- /dev/null
+++ b/tests/type_funcall/argswap-simple.e.expect_1_2_3
@@ -0,0 +1 @@
+{"output": "", "error": null, "retval": -1}
\ No newline at end of file
diff --git a/tests/type_funcall/argswap-simple.e.expect_lexer b/tests/type_funcall/argswap-simple.e.expect_lexer
new file mode 100644
index 0000000..034f6bd
--- /dev/null
+++ b/tests/type_funcall/argswap-simple.e.expect_lexer
@@ -0,0 +1,57 @@
+SYM_INT
+SYM_IDENTIFIER(g)
+SYM_LPARENTHESIS
+SYM_INT
+SYM_IDENTIFIER(a)
+SYM_COMMA
+SYM_INT
+SYM_IDENTIFIER(b)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_RETURN
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(b)
+SYM_MINUS
+SYM_IDENTIFIER(a)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_INT
+SYM_IDENTIFIER(f)
+SYM_LPARENTHESIS
+SYM_INT
+SYM_IDENTIFIER(a)
+SYM_COMMA
+SYM_INT
+SYM_IDENTIFIER(b)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_RETURN
+SYM_IDENTIFIER(g)
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(b)
+SYM_COMMA
+SYM_IDENTIFIER(a)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_INT
+SYM_IDENTIFIER(main)
+SYM_LPARENTHESIS
+SYM_INT
+SYM_IDENTIFIER(x)
+SYM_COMMA
+SYM_INT
+SYM_IDENTIFIER(y)
+SYM_RPARENTHESIS
+SYM_LBRACE
+SYM_RETURN
+SYM_IDENTIFIER(f)
+SYM_LPARENTHESIS
+SYM_IDENTIFIER(x)
+SYM_COMMA
+SYM_IDENTIFIER(y)
+SYM_RPARENTHESIS
+SYM_SEMICOLON
+SYM_RBRACE
+SYM_EOF
-- 
GitLab