diff options
Diffstat (limited to 'contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml')
-rw-r--r-- | contrib/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml | 53 |
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 () |