summaryrefslogtreecommitdiff
path: root/docs/tutorial/OCamlLangImpl6.html
diff options
context:
space:
mode:
authorErick Tryzelaar <idadesub@users.sourceforge.net>2010-03-08 19:32:18 +0000
committerErick Tryzelaar <idadesub@users.sourceforge.net>2010-03-08 19:32:18 +0000
commit9ef76b9985a0c408e126affa049698c413ad8664 (patch)
tree79fb162db230c0fa8cb3a67bd6df1db7c25d755a /docs/tutorial/OCamlLangImpl6.html
parent0ef3fa6aabc80995c8a0bd829c85c89ef2d4c32d (diff)
downloadllvm-9ef76b9985a0c408e126affa049698c413ad8664.tar.gz
llvm-9ef76b9985a0c408e126affa049698c413ad8664.tar.bz2
llvm-9ef76b9985a0c408e126affa049698c413ad8664.tar.xz
Update the OCaml Kaleidoscope tutorial.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97965 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/tutorial/OCamlLangImpl6.html')
-rw-r--r--docs/tutorial/OCamlLangImpl6.html24
1 files changed, 12 insertions, 12 deletions
diff --git a/docs/tutorial/OCamlLangImpl6.html b/docs/tutorial/OCamlLangImpl6.html
index b5606e72a4..df15e0d6b7 100644
--- a/docs/tutorial/OCamlLangImpl6.html
+++ b/docs/tutorial/OCamlLangImpl6.html
@@ -300,7 +300,7 @@ let codegen_func the_fpm = function
end;</b>
(* Create a new basic block to start insertion into. *)
- let bb = append_block "entry" the_function in
+ let bb = append_block context "entry" the_function in
position_at_end bb builder;
...
</pre>
@@ -1177,6 +1177,7 @@ let context = global_context ()
let the_module = create_module context "my cool jit"
let builder = builder context
let named_values:(string, llvalue) Hashtbl.t = Hashtbl.create 10
+let double_type = double_type context
let rec codegen_expr = function
| Ast.Number n -&gt; const_float double_type n
@@ -1241,7 +1242,7 @@ let rec codegen_expr = function
let start_bb = insertion_block builder in
let the_function = block_parent start_bb in
- let then_bb = append_block "then" the_function in
+ let then_bb = append_block context "then" the_function in
(* Emit 'then' value. *)
position_at_end then_bb builder;
@@ -1253,7 +1254,7 @@ let rec codegen_expr = function
let new_then_bb = insertion_block builder in
(* Emit 'else' value. *)
- let else_bb = append_block "else" the_function in
+ let else_bb = append_block context "else" the_function in
position_at_end else_bb builder;
let else_val = codegen_expr else_ in
@@ -1262,7 +1263,7 @@ let rec codegen_expr = function
let new_else_bb = insertion_block builder in
(* Emit merge block. *)
- let merge_bb = append_block "ifcont" the_function in
+ let merge_bb = append_block context "ifcont" the_function in
position_at_end merge_bb builder;
let incoming = [(then_val, new_then_bb); (else_val, new_else_bb)] in
let phi = build_phi incoming "iftmp" builder in
@@ -1288,7 +1289,7 @@ let rec codegen_expr = function
* block. *)
let preheader_bb = insertion_block builder in
let the_function = block_parent preheader_bb in
- let loop_bb = append_block "loop" the_function in
+ let loop_bb = append_block context "loop" the_function in
(* Insert an explicit fall through from the current block to the
* loop_bb. *)
@@ -1332,7 +1333,7 @@ let rec codegen_expr = function
(* Create the "after loop" block and insert it. *)
let loop_end_bb = insertion_block builder in
- let after_bb = append_block "afterloop" the_function in
+ let after_bb = append_block context "afterloop" the_function in
(* Insert the conditional branch into the end of loop_end_bb. *)
ignore (build_cond_br end_cond loop_bb after_bb builder);
@@ -1396,7 +1397,7 @@ let codegen_func the_fpm = function
end;
(* Create a new basic block to start insertion into. *)
- let bb = append_block "entry" the_function in
+ let bb = append_block context "entry" the_function in
position_at_end bb builder;
try
@@ -1461,7 +1462,7 @@ let rec main_loop the_fpm the_execution_engine stream =
the_execution_engine in
print_string "Evaluated to ";
- print_float (GenericValue.as_float double_type result);
+ print_float (GenericValue.as_float Codegen.double_type result);
print_newline ();
with Stream.Error s | Codegen.Error s -&gt;
(* Skip token for error recovery. *)
@@ -1500,16 +1501,15 @@ let main () =
let stream = Lexer.lex (Stream.of_channel stdin) in
(* Create the JIT. *)
- let the_module_provider = ModuleProvider.create Codegen.the_module in
- let the_execution_engine = ExecutionEngine.create the_module_provider in
- let the_fpm = PassManager.create_function the_module_provider in
+ 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_combining the_fpm;
+ add_instruction_combination the_fpm;
(* reassociate expressions. *)
add_reassociation the_fpm;