-(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_scalar_opts.cmxa llvm_target.cmxa %s -o %t
+(* RUN: rm -rf %t.builddir
+ * RUN: mkdir -p %t.builddir
+ * RUN: cp %s %t.builddir
+ * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_scalar_opts.%cma llvm_target.%cma %t.builddir/scalar_opts.ml -o %t
* RUN: %t %t.bc
* XFAIL: vg_leak
*)
(*===-- Transforms --------------------------------------------------------===*)
let test_transforms () =
- let (++) x f = ignore (f x); x in
+ let (++) x f = f x; x in
let fty = function_type void_type [| |] in
let fn = define_function "fn" fty m in
ignore (build_ret_void (builder_at_end context (entry_block fn)));
-
- let td = DataLayout.create (target_triple m) in
-
+
ignore (PassManager.create_function m
- ++ DataLayout.add td
- ++ add_verifier
- ++ add_constant_propagation
- ++ add_sccp
- ++ add_dead_store_elimination
++ add_aggressive_dce
- ++ add_scalar_repl_aggregation
- ++ add_scalar_repl_aggregation_ssa
- ++ add_scalar_repl_aggregation_with_threshold 4
+ ++ add_alignment_from_assumptions
+ ++ add_cfg_simplification
+ ++ add_dead_store_elimination
+ ++ add_scalarizer
+ ++ add_merged_load_store_motion
+ ++ add_gvn
++ add_ind_var_simplification
++ add_instruction_combination
+ ++ add_jump_threading
++ add_licm
- ++ add_loop_unswitch
- ++ add_loop_unroll
+ ++ add_loop_deletion
+ ++ add_loop_idiom
++ add_loop_rotation
+ ++ add_loop_reroll
+ ++ add_loop_unroll
+ ++ add_loop_unswitch
+ ++ add_memcpy_opt
+ ++ add_partially_inline_lib_calls
+ ++ add_lower_switch
++ add_memory_to_register_promotion
- ++ add_memory_to_register_demotion
++ add_reassociation
- ++ add_jump_threading
- ++ add_cfg_simplification
- ++ add_tail_call_elimination
- ++ add_gvn
- ++ add_memcpy_opt
- ++ add_loop_deletion
- ++ add_loop_idiom
+ ++ add_sccp
+ ++ add_scalar_repl_aggregation
+ ++ add_scalar_repl_aggregation_ssa
+ ++ add_scalar_repl_aggregation_with_threshold 4
++ add_lib_call_simplification
+ ++ add_tail_call_elimination
+ ++ add_constant_propagation
+ ++ add_memory_to_register_demotion
+ ++ add_verifier
++ add_correlated_value_propagation
++ add_early_cse
++ add_lower_expect_intrinsic
++ add_type_based_alias_analysis
+ ++ add_scoped_no_alias_alias_analysis
++ add_basic_alias_analysis
- ++ add_verifier
++ PassManager.initialize
++ PassManager.run_function fn
++ PassManager.finalize
- ++ PassManager.dispose);
-
- DataLayout.dispose td
+ ++ PassManager.dispose)
(*===-- Driver ------------------------------------------------------------===*)