aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml')
-rw-r--r--contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml53
1 files changed, 0 insertions, 53 deletions
diff --git a/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml b/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml
deleted file mode 100644
index 5f9d912499c9..000000000000
--- a/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml
+++ /dev/null
@@ -1,53 +0,0 @@
-(*===----------------------------------------------------------------------===
- * Main driver code.
- *===----------------------------------------------------------------------===*)
-
-open Llvm
-open Llvm_executionengine
-open Llvm_target
-open Llvm_scalar_opts
-
-let main () =
- ignore (initialize_native_target ());
-
- (* Install standard binary operators.
- * 1 is the lowest precedence. *)
- Hashtbl.add Parser.binop_precedence '<' 10;
- Hashtbl.add Parser.binop_precedence '+' 20;
- Hashtbl.add Parser.binop_precedence '-' 20;
- Hashtbl.add Parser.binop_precedence '*' 40; (* highest. *)
-
- (* Prime the first token. *)
- print_string "ready> "; flush stdout;
- let stream = Lexer.lex (Stream.of_channel stdin) in
-
- (* Create the JIT. *)
- let the_execution_engine = ExecutionEngine.create Codegen.the_module in
- let the_fpm = PassManager.create_function Codegen.the_module in
-
- (* Set up the optimizer pipeline. Start with registering info about how the
- * target lays out data structures. *)
- TargetData.add (ExecutionEngine.target_data the_execution_engine) the_fpm;
-
- (* Do simple "peephole" optimizations and bit-twiddling optzn. *)
- add_instruction_combination the_fpm;
-
- (* reassociate expressions. *)
- add_reassociation the_fpm;
-
- (* Eliminate Common SubExpressions. *)
- add_gvn the_fpm;
-
- (* Simplify the control flow graph (deleting unreachable blocks, etc). *)
- add_cfg_simplification the_fpm;
-
- ignore (PassManager.initialize the_fpm);
-
- (* Run the main "interpreter loop" now. *)
- Toplevel.main_loop the_fpm the_execution_engine stream;
-
- (* Print out all the generated code. *)
- dump_module Codegen.the_module
-;;
-
-main ()