diff options
Diffstat (limited to '0002-OCaml-Remove-all-PassManager-related-functions.patch')
-rw-r--r-- | 0002-OCaml-Remove-all-PassManager-related-functions.patch | 1622 |
1 files changed, 1622 insertions, 0 deletions
diff --git a/0002-OCaml-Remove-all-PassManager-related-functions.patch b/0002-OCaml-Remove-all-PassManager-related-functions.patch new file mode 100644 index 000000000000..49c5049c5f66 --- /dev/null +++ b/0002-OCaml-Remove-all-PassManager-related-functions.patch @@ -0,0 +1,1622 @@ +From e0efe46b33068f2e651e850cdc3ede0306f1853c Mon Sep 17 00:00:00 2001 +From: Alan Hu <alanh@ccs.neu.edu> +Date: Fri, 24 Feb 2023 13:14:11 -0800 +Subject: [PATCH] [OCaml] Remove all PassManager-related functions + +Reviewed By: aeubanks, nikic + +Differential Revision: https://reviews.llvm.org/D144751 +--- + llvm/bindings/ocaml/llvm/llvm.ml | 18 -- + llvm/bindings/ocaml/llvm/llvm.mli | 51 ---- + llvm/bindings/ocaml/llvm/llvm_ocaml.c | 33 --- + llvm/bindings/ocaml/target/llvm_target.ml | 2 - + llvm/bindings/ocaml/target/llvm_target.mli | 4 - + llvm/bindings/ocaml/target/target_ocaml.c | 7 - + llvm/bindings/ocaml/transforms/CMakeLists.txt | 5 +- + .../ocaml/transforms/ipo/CMakeLists.txt | 5 - + .../bindings/ocaml/transforms/ipo/ipo_ocaml.c | 50 ---- + .../bindings/ocaml/transforms/ipo/llvm_ipo.ml | 23 -- + .../ocaml/transforms/ipo/llvm_ipo.mli | 38 --- + .../transforms/passmgr_builder/CMakeLists.txt | 5 - + .../passmgr_builder/llvm_passmgr_builder.ml | 28 --- + .../passmgr_builder/llvm_passmgr_builder.mli | 48 ---- + .../passmgr_builder/passmgr_builder_ocaml.c | 92 ------- + .../transforms/scalar_opts/CMakeLists.txt | 5 - + .../scalar_opts/llvm_scalar_opts.ml | 116 --------- + .../scalar_opts/llvm_scalar_opts.mli | 187 -------------- + .../scalar_opts/scalar_opts_ocaml.c | 231 ------------------ + .../ocaml/transforms/vectorize/CMakeLists.txt | 5 - + .../transforms/vectorize/llvm_vectorize.ml | 14 -- + .../transforms/vectorize/llvm_vectorize.mli | 22 -- + .../transforms/vectorize/vectorize_ocaml.c | 32 --- + llvm/docs/CMakeLists.txt | 4 - + llvm/test/Bindings/OCaml/core.ml | 24 -- + llvm/test/Bindings/OCaml/ipo.ml | 63 ----- + llvm/test/Bindings/OCaml/passmgr_builder.ml | 60 ----- + llvm/test/Bindings/OCaml/scalar_opts.ml | 87 ------- + llvm/test/Bindings/OCaml/target.ml | 4 +- + llvm/test/Bindings/OCaml/vectorize.ml | 55 ----- + llvm/test/CMakeLists.txt | 4 - + 31 files changed, 2 insertions(+), 1320 deletions(-) + delete mode 100644 llvm/bindings/ocaml/transforms/ipo/CMakeLists.txt + delete mode 100644 llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c + delete mode 100644 llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml + delete mode 100644 llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli + delete mode 100644 llvm/bindings/ocaml/transforms/passmgr_builder/CMakeLists.txt + delete mode 100644 llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.ml + delete mode 100644 llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.mli + delete mode 100644 llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c + delete mode 100644 llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt + delete mode 100644 llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml + delete mode 100644 llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli + delete mode 100644 llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c + delete mode 100644 llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt + delete mode 100644 llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.ml + delete mode 100644 llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.mli + delete mode 100644 llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c + delete mode 100644 llvm/test/Bindings/OCaml/ipo.ml + delete mode 100644 llvm/test/Bindings/OCaml/passmgr_builder.ml + delete mode 100644 llvm/test/Bindings/OCaml/scalar_opts.ml + delete mode 100644 llvm/test/Bindings/OCaml/vectorize.ml + +diff --git a/llvm/bindings/ocaml/llvm/llvm.ml b/llvm/bindings/ocaml/llvm/llvm.ml +index 10d44a6cf998..4487866891e4 100644 +--- a/llvm/bindings/ocaml/llvm/llvm.ml ++++ b/llvm/bindings/ocaml/llvm/llvm.ml +@@ -1392,21 +1392,3 @@ module MemoryBuffer = struct + external as_string : llmemorybuffer -> string = "llvm_memorybuffer_as_string" + external dispose : llmemorybuffer -> unit = "llvm_memorybuffer_dispose" + end +- +- +-(*===-- Pass Manager ------------------------------------------------------===*) +- +-module PassManager = struct +- type 'a t +- type any = [ `Module | `Function ] +- external create : unit -> [ `Module ] t = "llvm_passmanager_create" +- external create_function : llmodule -> [ `Function ] t +- = "LLVMCreateFunctionPassManager" +- external run_module : llmodule -> [ `Module ] t -> bool +- = "llvm_passmanager_run_module" +- external initialize : [ `Function ] t -> bool = "llvm_passmanager_initialize" +- external run_function : llvalue -> [ `Function ] t -> bool +- = "llvm_passmanager_run_function" +- external finalize : [ `Function ] t -> bool = "llvm_passmanager_finalize" +- external dispose : [< any ] t -> unit = "llvm_passmanager_dispose" +-end +diff --git a/llvm/bindings/ocaml/llvm/llvm.mli b/llvm/bindings/ocaml/llvm/llvm.mli +index 38bf555d0230..59ac5b855130 100644 +--- a/llvm/bindings/ocaml/llvm/llvm.mli ++++ b/llvm/bindings/ocaml/llvm/llvm.mli +@@ -2622,54 +2622,3 @@ module MemoryBuffer : sig + (** Disposes of a memory buffer. *) + val dispose : llmemorybuffer -> unit + end +- +- +-(** {6 Pass Managers} *) +- +-module PassManager : sig +- (** *) +- type 'a t +- type any = [ `Module | `Function ] +- +- (** [PassManager.create ()] constructs a new whole-module pass pipeline. This +- type of pipeline is suitable for link-time optimization and whole-module +- transformations. +- See the constructor of [llvm::PassManager]. *) +- val create : unit -> [ `Module ] t +- +- (** [PassManager.create_function m] constructs a new function-by-function +- pass pipeline over the module [m]. It does not take ownership of [m]. +- This type of pipeline is suitable for code generation and JIT compilation +- tasks. +- See the constructor of [llvm::FunctionPassManager]. *) +- val create_function : llmodule -> [ `Function ] t +- +- (** [run_module m pm] initializes, executes on the module [m], and finalizes +- all of the passes scheduled in the pass manager [pm]. Returns [true] if +- any of the passes modified the module, [false] otherwise. +- See the [llvm::PassManager::run] method. *) +- val run_module : llmodule -> [ `Module ] t -> bool +- +- (** [initialize fpm] initializes all of the function passes scheduled in the +- function pass manager [fpm]. Returns [true] if any of the passes modified +- the module, [false] otherwise. +- See the [llvm::FunctionPassManager::doInitialization] method. *) +- val initialize : [ `Function ] t -> bool +- +- (** [run_function f fpm] executes all of the function passes scheduled in the +- function pass manager [fpm] over the function [f]. Returns [true] if any +- of the passes modified [f], [false] otherwise. +- See the [llvm::FunctionPassManager::run] method. *) +- val run_function : llvalue -> [ `Function ] t -> bool +- +- (** [finalize fpm] finalizes all of the function passes scheduled in the +- function pass manager [fpm]. Returns [true] if any of the passes +- modified the module, [false] otherwise. +- See the [llvm::FunctionPassManager::doFinalization] method. *) +- val finalize : [ `Function ] t -> bool +- +- (** Frees the memory of a pass pipeline. For function pipelines, does not free +- the module. +- See the destructor of [llvm::BasePassManager]. *) +- val dispose : [< any ] t -> unit +-end +diff --git a/llvm/bindings/ocaml/llvm/llvm_ocaml.c b/llvm/bindings/ocaml/llvm/llvm_ocaml.c +index 0762ebef1bb0..dff14cf79c55 100644 +--- a/llvm/bindings/ocaml/llvm/llvm_ocaml.c ++++ b/llvm/bindings/ocaml/llvm/llvm_ocaml.c +@@ -2339,36 +2339,3 @@ value llvm_memorybuffer_dispose(LLVMMemoryBufferRef MemBuf) { + LLVMDisposeMemoryBuffer(MemBuf); + return Val_unit; + } +- +-/*===-- Pass Managers -----------------------------------------------------===*/ +- +-/* unit -> [ `Module ] PassManager.t */ +-LLVMPassManagerRef llvm_passmanager_create(value Unit) { +- return LLVMCreatePassManager(); +-} +- +-/* llmodule -> [ `Function ] PassManager.t -> bool */ +-value llvm_passmanager_run_module(LLVMModuleRef M, LLVMPassManagerRef PM) { +- return Val_bool(LLVMRunPassManager(PM, M)); +-} +- +-/* [ `Function ] PassManager.t -> bool */ +-value llvm_passmanager_initialize(LLVMPassManagerRef FPM) { +- return Val_bool(LLVMInitializeFunctionPassManager(FPM)); +-} +- +-/* llvalue -> [ `Function ] PassManager.t -> bool */ +-value llvm_passmanager_run_function(LLVMValueRef F, LLVMPassManagerRef FPM) { +- return Val_bool(LLVMRunFunctionPassManager(FPM, F)); +-} +- +-/* [ `Function ] PassManager.t -> bool */ +-value llvm_passmanager_finalize(LLVMPassManagerRef FPM) { +- return Val_bool(LLVMFinalizeFunctionPassManager(FPM)); +-} +- +-/* PassManager.any PassManager.t -> unit */ +-value llvm_passmanager_dispose(LLVMPassManagerRef PM) { +- LLVMDisposePassManager(PM); +- return Val_unit; +-} +diff --git a/llvm/bindings/ocaml/target/llvm_target.ml b/llvm/bindings/ocaml/target/llvm_target.ml +index 0922ebe55345..29af0187f940 100644 +--- a/llvm/bindings/ocaml/target/llvm_target.ml ++++ b/llvm/bindings/ocaml/target/llvm_target.ml +@@ -122,8 +122,6 @@ module TargetMachine = struct + = "llvm_targetmachine_features" + external data_layout : t -> DataLayout.t + = "llvm_targetmachine_data_layout" +- external add_analysis_passes : [< Llvm.PassManager.any ] Llvm.PassManager.t -> t -> unit +- = "llvm_targetmachine_add_analysis_passes" + external set_verbose_asm : bool -> t -> unit + = "llvm_targetmachine_set_verbose_asm" + external emit_to_file : Llvm.llmodule -> CodeGenFileType.t -> string -> +diff --git a/llvm/bindings/ocaml/target/llvm_target.mli b/llvm/bindings/ocaml/target/llvm_target.mli +index 8d310793bea2..56ecb2d908dd 100644 +--- a/llvm/bindings/ocaml/target/llvm_target.mli ++++ b/llvm/bindings/ocaml/target/llvm_target.mli +@@ -200,10 +200,6 @@ module TargetMachine : sig + [llvm::TargetMachine::getFeatureString]. *) + val features : t -> string + +- (** Adds the target-specific analysis passes to the pass manager. +- See [llvm::TargetMachine::addAnalysisPasses]. *) +- val add_analysis_passes : [< Llvm.PassManager.any ] Llvm.PassManager.t -> t -> unit +- + (** Sets the assembly verbosity of this target machine. + See [llvm::TargetMachine::setAsmVerbosity]. *) + val set_verbose_asm : bool -> t -> unit +diff --git a/llvm/bindings/ocaml/target/target_ocaml.c b/llvm/bindings/ocaml/target/target_ocaml.c +index 2b7259bf2bc5..d0bc6f162f0d 100644 +--- a/llvm/bindings/ocaml/target/target_ocaml.c ++++ b/llvm/bindings/ocaml/target/target_ocaml.c +@@ -327,10 +327,3 @@ llvm_targetmachine_emit_to_memory_buffer(LLVMModuleRef Module, value FileType, + + return Buffer; + } +- +-/* TargetMachine.t -> Llvm.PassManager.t -> unit */ +-value llvm_targetmachine_add_analysis_passes(LLVMPassManagerRef PM, +- value Machine) { +- LLVMAddAnalysisPasses(TargetMachine_val(Machine), PM); +- return Val_unit; +-} +diff --git a/llvm/bindings/ocaml/transforms/CMakeLists.txt b/llvm/bindings/ocaml/transforms/CMakeLists.txt +index beb8694019b7..0628d6763874 100644 +--- a/llvm/bindings/ocaml/transforms/CMakeLists.txt ++++ b/llvm/bindings/ocaml/transforms/CMakeLists.txt +@@ -1,5 +1,2 @@ +-add_subdirectory(ipo) +-add_subdirectory(passmgr_builder) +-add_subdirectory(scalar_opts) + add_subdirectory(utils) +-add_subdirectory(vectorize) ++ +diff --git a/llvm/bindings/ocaml/transforms/ipo/CMakeLists.txt b/llvm/bindings/ocaml/transforms/ipo/CMakeLists.txt +deleted file mode 100644 +index 4b8784fad67b..000000000000 +--- a/llvm/bindings/ocaml/transforms/ipo/CMakeLists.txt ++++ /dev/null +@@ -1,5 +0,0 @@ +-add_ocaml_library(llvm_ipo +- OCAML llvm_ipo +- OCAMLDEP llvm +- C ipo_ocaml +- LLVM ipo) +diff --git a/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c b/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c +deleted file mode 100644 +index 008d18e0822b..000000000000 +--- a/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c ++++ /dev/null +@@ -1,50 +0,0 @@ +-/*===-- ipo_ocaml.c - LLVM OCaml Glue ---------------------------*- C++ -*-===*\ +-|* *| +-|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +-|* Exceptions. *| +-|* See https://llvm.org/LICENSE.txt for license information. *| +-|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +-|* *| +-|*===----------------------------------------------------------------------===*| +-|* *| +-|* This file glues LLVM's OCaml interface to its C interface. These functions *| +-|* are by and large transparent wrappers to the corresponding C functions. *| +-|* *| +-|* Note that these functions intentionally take liberties with the CAMLparamX *| +-|* macros, since most of the parameters are not GC heap objects. *| +-|* *| +-\*===----------------------------------------------------------------------===*/ +- +-#include "llvm-c/Transforms/IPO.h" +-#include "caml/mlvalues.h" +-#include "caml/misc.h" +- +-/* [`Module] Llvm.PassManager.t -> unit */ +-value llvm_add_constant_merge(LLVMPassManagerRef PM) { +- LLVMAddConstantMergePass(PM); +- return Val_unit; +-} +- +-/* [`Module] Llvm.PassManager.t -> unit */ +-value llvm_add_dead_arg_elimination(LLVMPassManagerRef PM) { +- LLVMAddDeadArgEliminationPass(PM); +- return Val_unit; +-} +- +-/* [`Module] Llvm.PassManager.t -> unit */ +-value llvm_add_function_attrs(LLVMPassManagerRef PM) { +- LLVMAddFunctionAttrsPass(PM); +- return Val_unit; +-} +- +-/* [`Module] Llvm.PassManager.t -> unit */ +-value llvm_add_always_inliner(LLVMPassManagerRef PM) { +- LLVMAddAlwaysInlinerPass(PM); +- return Val_unit; +-} +- +-/* [`Module] Llvm.PassManager.t -> unit */ +-value llvm_add_global_dce(LLVMPassManagerRef PM) { +- LLVMAddGlobalDCEPass(PM); +- return Val_unit; +-} +diff --git a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml +deleted file mode 100644 +index e54ee494e7be..000000000000 +--- a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml ++++ /dev/null +@@ -1,23 +0,0 @@ +-(*===-- llvm_ipo.ml - LLVM OCaml Interface --------------------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-external add_constant_merge +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_constant_merge" +-external add_dead_arg_elimination +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_dead_arg_elimination" +-external add_function_attrs +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_function_attrs" +-external add_always_inliner +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_always_inliner" +-external add_global_dce +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_global_dce" +diff --git a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli +deleted file mode 100644 +index baa098495e9c..000000000000 +--- a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli ++++ /dev/null +@@ -1,38 +0,0 @@ +-(*===-- llvm_ipo.mli - LLVM OCaml Interface -------------------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-(** IPO Transforms. +- +- This interface provides an OCaml API for LLVM interprocedural optimizations, the +- classes in the [LLVMIPO] library. *) +- +-(** See the [llvm::createConstantMergePass] function. *) +-external add_constant_merge +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_constant_merge" +- +-(** See the [llvm::createDeadArgEliminationPass] function. *) +-external add_dead_arg_elimination +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_dead_arg_elimination" +- +-(** See the [llvm::createFunctionAttrsPass] function. *) +-external add_function_attrs +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_function_attrs" +- +-(** See the [llvm::createAlwaysInlinerPass] function. *) +-external add_always_inliner +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_always_inliner" +- +-(** See the [llvm::createGlobalDCEPass] function. *) +-external add_global_dce +- : [ `Module ] Llvm.PassManager.t -> unit +- = "llvm_add_global_dce" +- +\ No newline at end of file +diff --git a/llvm/bindings/ocaml/transforms/passmgr_builder/CMakeLists.txt b/llvm/bindings/ocaml/transforms/passmgr_builder/CMakeLists.txt +deleted file mode 100644 +index b012863d8ec7..000000000000 +--- a/llvm/bindings/ocaml/transforms/passmgr_builder/CMakeLists.txt ++++ /dev/null +@@ -1,5 +0,0 @@ +-add_ocaml_library(llvm_passmgr_builder +- OCAML llvm_passmgr_builder +- OCAMLDEP llvm +- C passmgr_builder_ocaml +- LLVM ipo) +diff --git a/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.ml b/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.ml +deleted file mode 100644 +index c39a592c47d3..000000000000 +--- a/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.ml ++++ /dev/null +@@ -1,28 +0,0 @@ +-(*===-- llvm_passmgr_builder.ml - LLVM OCaml Interface --------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-type t +- +-external create : unit -> t +- = "llvm_pmbuilder_create" +-external set_opt_level : int -> t -> unit +- = "llvm_pmbuilder_set_opt_level" +-external set_size_level : int -> t -> unit +- = "llvm_pmbuilder_set_size_level" +-external set_disable_unit_at_a_time : bool -> t -> unit +- = "llvm_pmbuilder_set_disable_unit_at_a_time" +-external set_disable_unroll_loops : bool -> t -> unit +- = "llvm_pmbuilder_set_disable_unroll_loops" +-external use_inliner_with_threshold : int -> t -> unit +- = "llvm_pmbuilder_use_inliner_with_threshold" +-external populate_function_pass_manager +- : [ `Function ] Llvm.PassManager.t -> t -> unit +- = "llvm_pmbuilder_populate_function_pass_manager" +-external populate_module_pass_manager +- : [ `Module ] Llvm.PassManager.t -> t -> unit +- = "llvm_pmbuilder_populate_module_pass_manager" +\ No newline at end of file +diff --git a/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.mli b/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.mli +deleted file mode 100644 +index d2861ea343b6..000000000000 +--- a/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.mli ++++ /dev/null +@@ -1,48 +0,0 @@ +-(*===-- llvm_passmgr_builder.mli - LLVM OCaml Interface -------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-(** Pass Manager Builder. +- +- This interface provides an OCaml API for LLVM pass manager builder +- from the [LLVMCore] library. *) +- +-type t +- +-(** See the [llvm::PassManagerBuilder] function. *) +-external create : unit -> t +- = "llvm_pmbuilder_create" +- +-(** See the [llvm::PassManagerBuilder::OptLevel] function. *) +-external set_opt_level : int -> t -> unit +- = "llvm_pmbuilder_set_opt_level" +- +-(** See the [llvm::PassManagerBuilder::SizeLevel] function. *) +-external set_size_level : int -> t -> unit +- = "llvm_pmbuilder_set_size_level" +- +-(** See the [llvm::PassManagerBuilder::DisableUnitAtATime] function. *) +-external set_disable_unit_at_a_time : bool -> t -> unit +- = "llvm_pmbuilder_set_disable_unit_at_a_time" +- +-(** See the [llvm::PassManagerBuilder::DisableUnrollLoops] function. *) +-external set_disable_unroll_loops : bool -> t -> unit +- = "llvm_pmbuilder_set_disable_unroll_loops" +- +-(** See the [llvm::PassManagerBuilder::Inliner] function. *) +-external use_inliner_with_threshold : int -> t -> unit +- = "llvm_pmbuilder_use_inliner_with_threshold" +- +-(** See the [llvm::PassManagerBuilder::populateFunctionPassManager] function. *) +-external populate_function_pass_manager +- : [ `Function ] Llvm.PassManager.t -> t -> unit +- = "llvm_pmbuilder_populate_function_pass_manager" +- +-(** See the [llvm::PassManagerBuilder::populateModulePassManager] function. *) +-external populate_module_pass_manager +- : [ `Module ] Llvm.PassManager.t -> t -> unit +- = "llvm_pmbuilder_populate_module_pass_manager" +diff --git a/llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c b/llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c +deleted file mode 100644 +index de0a76219d37..000000000000 +--- a/llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c ++++ /dev/null +@@ -1,92 +0,0 @@ +-/*===-- passmgr_builder_ocaml.c - LLVM OCaml Glue ---------------*- C++ -*-===*\ +-|* *| +-|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +-|* Exceptions. *| +-|* See https://llvm.org/LICENSE.txt for license information. *| +-|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +-|* *| +-|*===----------------------------------------------------------------------===*| +-|* *| +-|* This file glues LLVM's OCaml interface to its C interface. These functions *| +-|* are by and large transparent wrappers to the corresponding C functions. *| +-|* *| +-|* Note that these functions intentionally take liberties with the CAMLparamX *| +-|* macros, since most of the parameters are not GC heap objects. *| +-|* *| +-\*===----------------------------------------------------------------------===*/ +- +-#include "llvm-c/Transforms/PassManagerBuilder.h" +-#include "caml/mlvalues.h" +-#include "caml/custom.h" +-#include "caml/misc.h" +- +-#define PMBuilder_val(v) (*(LLVMPassManagerBuilderRef *)(Data_custom_val(v))) +- +-static void llvm_finalize_pmbuilder(value PMB) { +- LLVMPassManagerBuilderDispose(PMBuilder_val(PMB)); +-} +- +-static struct custom_operations pmbuilder_ops = { +- (char *)"Llvm_passmgr_builder.t", llvm_finalize_pmbuilder, +- custom_compare_default, custom_hash_default, +- custom_serialize_default, custom_deserialize_default, +- custom_compare_ext_default}; +- +-static value alloc_pmbuilder(LLVMPassManagerBuilderRef Ref) { +- value Val = +- alloc_custom(&pmbuilder_ops, sizeof(LLVMPassManagerBuilderRef), 0, 1); +- PMBuilder_val(Val) = Ref; +- return Val; +-} +- +-/* t -> unit */ +-value llvm_pmbuilder_create(value Unit) { +- return alloc_pmbuilder(LLVMPassManagerBuilderCreate()); +-} +- +-/* int -> t -> unit */ +-value llvm_pmbuilder_set_opt_level(value OptLevel, value PMB) { +- LLVMPassManagerBuilderSetOptLevel(PMBuilder_val(PMB), Int_val(OptLevel)); +- return Val_unit; +-} +- +-/* int -> t -> unit */ +-value llvm_pmbuilder_set_size_level(value SizeLevel, value PMB) { +- LLVMPassManagerBuilderSetSizeLevel(PMBuilder_val(PMB), Int_val(SizeLevel)); +- return Val_unit; +-} +- +-/* int -> t -> unit */ +-value llvm_pmbuilder_use_inliner_with_threshold(value Threshold, value PMB) { +- LLVMPassManagerBuilderSetOptLevel(PMBuilder_val(PMB), Int_val(Threshold)); +- return Val_unit; +-} +- +-/* bool -> t -> unit */ +-value llvm_pmbuilder_set_disable_unit_at_a_time(value DisableUnitAtATime, +- value PMB) { +- LLVMPassManagerBuilderSetDisableUnitAtATime(PMBuilder_val(PMB), +- Bool_val(DisableUnitAtATime)); +- return Val_unit; +-} +- +-/* bool -> t -> unit */ +-value llvm_pmbuilder_set_disable_unroll_loops(value DisableUnroll, value PMB) { +- LLVMPassManagerBuilderSetDisableUnrollLoops(PMBuilder_val(PMB), +- Bool_val(DisableUnroll)); +- return Val_unit; +-} +- +-/* [ `Function ] Llvm.PassManager.t -> t -> unit */ +-value llvm_pmbuilder_populate_function_pass_manager(LLVMPassManagerRef PM, +- value PMB) { +- LLVMPassManagerBuilderPopulateFunctionPassManager(PMBuilder_val(PMB), PM); +- return Val_unit; +-} +- +-/* [ `Module ] Llvm.PassManager.t -> t -> unit */ +-value llvm_pmbuilder_populate_module_pass_manager(LLVMPassManagerRef PM, +- value PMB) { +- LLVMPassManagerBuilderPopulateModulePassManager(PMBuilder_val(PMB), PM); +- return Val_unit; +-} +diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt b/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt +deleted file mode 100644 +index d680b02046c6..000000000000 +--- a/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt ++++ /dev/null +@@ -1,5 +0,0 @@ +-add_ocaml_library(llvm_scalar_opts +- OCAML llvm_scalar_opts +- OCAMLDEP llvm +- C scalar_opts_ocaml +- LLVM Scalar) +diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml b/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml +deleted file mode 100644 +index cf212b90f717..000000000000 +--- a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml ++++ /dev/null +@@ -1,116 +0,0 @@ +-(*===-- llvm_scalar_opts.ml - LLVM OCaml Interface ------------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-external add_aggressive_dce +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_aggressive_dce" +-external add_dce +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_dce" +-external add_alignment_from_assumptions +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_alignment_from_assumptions" +-external add_cfg_simplification +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_cfg_simplification" +-external add_dead_store_elimination +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_dead_store_elimination" +-external add_scalarizer +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalarizer" +-external add_merged_load_store_motion +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_merged_load_store_motion" +-external add_gvn +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_gvn" +-external add_ind_var_simplification +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_ind_var_simplify" +-external add_instruction_combination +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_instruction_combining" +-external add_jump_threading +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_jump_threading" +-external add_licm +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_licm" +-external add_loop_rotation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_loop_rotate" +-external add_loop_unroll +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_loop_unroll" +-external add_memcpy_opt +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_memcpy_opt" +-external add_partially_inline_lib_calls +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_partially_inline_lib_calls" +-external add_lower_atomic +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_atomic" +-external add_lower_switch +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_switch" +-external add_memory_to_register_promotion +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_promote_memory_to_register" +-external add_reassociation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_reassociation" +-external add_sccp +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_sccp" +-external add_scalar_repl_aggregation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalar_repl_aggregates" +-external add_scalar_repl_aggregation_ssa +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalar_repl_aggregates_ssa" +-external add_scalar_repl_aggregation_with_threshold +- : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalar_repl_aggregates_with_threshold" +-external add_lib_call_simplification +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_simplify_lib_calls" +-external add_tail_call_elimination +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_tail_call_elimination" +-external add_memory_to_register_demotion +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_demote_memory_to_register" +-external add_verifier +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_verifier" +-external add_correlated_value_propagation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_correlated_value_propagation" +-external add_early_cse +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_early_cse" +-external add_lower_expect_intrinsic +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_expect_intrinsic" +-external add_lower_constant_intrinsics +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_constant_intrinsics" +-external add_type_based_alias_analysis +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_type_based_alias_analysis" +-external add_scoped_no_alias_alias_analysis +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scoped_no_alias_aa" +-external add_basic_alias_analysis +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_basic_alias_analysis" +-external add_unify_function_exit_nodes +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_unify_function_exit_nodes" +diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli b/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli +deleted file mode 100644 +index ff21c357f74c..000000000000 +--- a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli ++++ /dev/null +@@ -1,187 +0,0 @@ +-(*===-- llvm_scalar_opts.mli - LLVM OCaml Interface -----------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-(** Scalar Transforms. +- +- This interface provides an OCaml API for LLVM scalar transforms, the +- classes in the [LLVMScalarOpts] library. *) +- +-(** See the [llvm::createAggressiveDCEPass] function. *) +-external add_aggressive_dce +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_aggressive_dce" +- +-(** See the [llvm::createDCEPass] function. *) +-external add_dce +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_dce" +- +-(** See the [llvm::createAlignmentFromAssumptionsPass] function. *) +-external add_alignment_from_assumptions +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_alignment_from_assumptions" +- +-(** See the [llvm::createCFGSimplificationPass] function. *) +-external add_cfg_simplification +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_cfg_simplification" +- +-(** See [llvm::createDeadStoreEliminationPass] function. *) +-external add_dead_store_elimination +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_dead_store_elimination" +- +-(** See [llvm::createScalarizerPass] function. *) +-external add_scalarizer +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalarizer" +- +-(** See [llvm::createMergedLoadStoreMotionPass] function. *) +-external add_merged_load_store_motion +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_merged_load_store_motion" +- +-(** See the [llvm::createGVNPass] function. *) +-external add_gvn +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_gvn" +- +-(** See the [llvm::createIndVarSimplifyPass] function. *) +-external add_ind_var_simplification +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_ind_var_simplify" +- +-(** See the [llvm::createInstructionCombiningPass] function. *) +-external add_instruction_combination +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_instruction_combining" +- +-(** See the [llvm::createJumpThreadingPass] function. *) +-external add_jump_threading +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_jump_threading" +- +-(** See the [llvm::createLICMPass] function. *) +-external add_licm +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_licm" +- +-(** See the [llvm::createLoopRotatePass] function. *) +-external add_loop_rotation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_loop_rotate" +- +-(** See the [llvm::createLoopUnrollPass] function. *) +-external add_loop_unroll +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_loop_unroll" +- +-(** See the [llvm::createMemCpyOptPass] function. *) +-external add_memcpy_opt +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_memcpy_opt" +- +-(** See the [llvm::createPartiallyInlineLibCallsPass] function. *) +-external add_partially_inline_lib_calls +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_partially_inline_lib_calls" +- +-(** See the [llvm::createLowerAtomicPass] function. *) +-external add_lower_atomic +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_atomic" +- +-(** See the [llvm::createLowerSwitchPass] function. *) +-external add_lower_switch +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_switch" +- +-(** See the [llvm::createPromoteMemoryToRegisterPass] function. *) +-external add_memory_to_register_promotion +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_promote_memory_to_register" +- +-(** See the [llvm::createReassociatePass] function. *) +-external add_reassociation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_reassociation" +- +-(** See the [llvm::createSROAPass] function. *) +-external add_scalar_repl_aggregation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalar_repl_aggregates" +- +-(** See the [llvm::createSROAPass] function. *) +-external add_scalar_repl_aggregation_ssa +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalar_repl_aggregates_ssa" +- +-(** See the [llvm::createSROAPass] function. *) +-external add_scalar_repl_aggregation_with_threshold +- : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scalar_repl_aggregates_with_threshold" +- +-(** See the [llvm::createSimplifyLibCallsPass] function. *) +-external add_lib_call_simplification +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_simplify_lib_calls" +- +-(** See the [llvm::createTailCallEliminationPass] function. *) +-external add_tail_call_elimination +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_tail_call_elimination" +- +-(** See the [llvm::createDemoteMemoryToRegisterPass] function. *) +-external add_memory_to_register_demotion +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_demote_memory_to_register" +- +-(** See the [llvm::createVerifierPass] function. *) +-external add_verifier +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_verifier" +- +-(** See the [llvm::createCorrelatedValuePropagationPass] function. *) +-external add_correlated_value_propagation +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_correlated_value_propagation" +- +-(** See the [llvm::createEarlyCSE] function. *) +-external add_early_cse +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_early_cse" +- +-(** See the [llvm::createLowerExpectIntrinsicPass] function. *) +-external add_lower_expect_intrinsic +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_expect_intrinsic" +- +-(** See the [llvm::createLowerConstantIntrinsicsPass] function. *) +-external add_lower_constant_intrinsics +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_lower_constant_intrinsics" +- +-(** See the [llvm::createTypeBasedAliasAnalysisPass] function. *) +-external add_type_based_alias_analysis +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_type_based_alias_analysis" +- +-(** See the [llvm::createScopedNoAliasAAPass] function. *) +-external add_scoped_no_alias_alias_analysis +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_scoped_no_alias_aa" +- +-(** See the [llvm::createBasicAliasAnalysisPass] function. *) +-external add_basic_alias_analysis +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_basic_alias_analysis" +- +-(** See the [llvm::createUnifyFunctionExitNodesPass] function. *) +-external add_unify_function_exit_nodes +- : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit +- = "llvm_add_unify_function_exit_nodes" +diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c b/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c +deleted file mode 100644 +index a8041695f0ed..000000000000 +--- a/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c ++++ /dev/null +@@ -1,231 +0,0 @@ +-/*===-- scalar_opts_ocaml.c - LLVM OCaml Glue -------------------*- C++ -*-===*\ +-|* *| +-|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +-|* Exceptions. *| +-|* See https://llvm.org/LICENSE.txt for license information. *| +-|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +-|* *| +-|*===----------------------------------------------------------------------===*| +-|* *| +-|* This file glues LLVM's OCaml interface to its C interface. These functions *| +-|* are by and large transparent wrappers to the corresponding C functions. *| +-|* *| +-|* Note that these functions intentionally take liberties with the CAMLparamX *| +-|* macros, since most of the parameters are not GC heap objects. *| +-|* *| +-\*===----------------------------------------------------------------------===*/ +- +-#include "llvm-c/Transforms/Scalar.h" +-#include "llvm-c/Transforms/Utils.h" +-#include "caml/mlvalues.h" +-#include "caml/misc.h" +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_aggressive_dce(LLVMPassManagerRef PM) { +- LLVMAddAggressiveDCEPass(PM); +- return Val_unit; +-} +- +-value llvm_add_dce(LLVMPassManagerRef PM) { +- LLVMAddDCEPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_alignment_from_assumptions(LLVMPassManagerRef PM) { +- LLVMAddAlignmentFromAssumptionsPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_cfg_simplification(LLVMPassManagerRef PM) { +- LLVMAddCFGSimplificationPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_dead_store_elimination(LLVMPassManagerRef PM) { +- LLVMAddDeadStoreEliminationPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_scalarizer(LLVMPassManagerRef PM) { +- LLVMAddScalarizerPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_merged_load_store_motion(LLVMPassManagerRef PM) { +- LLVMAddMergedLoadStoreMotionPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_gvn(LLVMPassManagerRef PM) { +- LLVMAddGVNPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_ind_var_simplify(LLVMPassManagerRef PM) { +- LLVMAddIndVarSimplifyPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_instruction_combining(LLVMPassManagerRef PM) { +- LLVMAddInstructionCombiningPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_jump_threading(LLVMPassManagerRef PM) { +- LLVMAddJumpThreadingPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_licm(LLVMPassManagerRef PM) { +- LLVMAddLICMPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_loop_rotate(LLVMPassManagerRef PM) { +- LLVMAddLoopRotatePass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_loop_unroll(LLVMPassManagerRef PM) { +- LLVMAddLoopUnrollPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_memcpy_opt(LLVMPassManagerRef PM) { +- LLVMAddMemCpyOptPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_partially_inline_lib_calls(LLVMPassManagerRef PM) { +- LLVMAddPartiallyInlineLibCallsPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_lower_atomic(LLVMPassManagerRef PM) { +- LLVMAddLowerAtomicPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_lower_switch(LLVMPassManagerRef PM) { +- LLVMAddLowerSwitchPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_promote_memory_to_register(LLVMPassManagerRef PM) { +- LLVMAddPromoteMemoryToRegisterPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_reassociation(LLVMPassManagerRef PM) { +- LLVMAddReassociatePass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_scalar_repl_aggregates(LLVMPassManagerRef PM) { +- LLVMAddScalarReplAggregatesPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_scalar_repl_aggregates_ssa(LLVMPassManagerRef PM) { +- LLVMAddScalarReplAggregatesPassSSA(PM); +- return Val_unit; +-} +- +-/* int -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_scalar_repl_aggregates_with_threshold(value threshold, +- LLVMPassManagerRef PM) { +- LLVMAddScalarReplAggregatesPassWithThreshold(PM, Int_val(threshold)); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_simplify_lib_calls(LLVMPassManagerRef PM) { +- LLVMAddSimplifyLibCallsPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_tail_call_elimination(LLVMPassManagerRef PM) { +- LLVMAddTailCallEliminationPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_demote_memory_to_register(LLVMPassManagerRef PM) { +- LLVMAddDemoteMemoryToRegisterPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_verifier(LLVMPassManagerRef PM) { +- LLVMAddVerifierPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_correlated_value_propagation(LLVMPassManagerRef PM) { +- LLVMAddCorrelatedValuePropagationPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_early_cse(LLVMPassManagerRef PM) { +- LLVMAddEarlyCSEPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_lower_expect_intrinsic(LLVMPassManagerRef PM) { +- LLVMAddLowerExpectIntrinsicPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_lower_constant_intrinsics(LLVMPassManagerRef PM) { +- LLVMAddLowerConstantIntrinsicsPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_type_based_alias_analysis(LLVMPassManagerRef PM) { +- LLVMAddTypeBasedAliasAnalysisPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_scoped_no_alias_aa(LLVMPassManagerRef PM) { +- LLVMAddScopedNoAliasAAPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_basic_alias_analysis(LLVMPassManagerRef PM) { +- LLVMAddBasicAliasAnalysisPass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_unify_function_exit_nodes(LLVMPassManagerRef PM) { +- LLVMAddUnifyFunctionExitNodesPass(PM); +- return Val_unit; +-} +diff --git a/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt b/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt +deleted file mode 100644 +index 47af23928ccb..000000000000 +--- a/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt ++++ /dev/null +@@ -1,5 +0,0 @@ +-add_ocaml_library(llvm_vectorize +- OCAML llvm_vectorize +- OCAMLDEP llvm +- C vectorize_ocaml +- LLVM Vectorize) +diff --git a/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.ml b/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.ml +deleted file mode 100644 +index a2e280e15848..000000000000 +--- a/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.ml ++++ /dev/null +@@ -1,14 +0,0 @@ +-(*===-- llvm_vectorize.ml - LLVM OCaml Interface --------------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-external add_loop_vectorize +- : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit +- = "llvm_add_loop_vectorize" +-external add_slp_vectorize +- : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit +- = "llvm_add_slp_vectorize" +diff --git a/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.mli b/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.mli +deleted file mode 100644 +index 7376d9e6d814..000000000000 +--- a/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.mli ++++ /dev/null +@@ -1,22 +0,0 @@ +-(*===-- llvm_vectorize.mli - LLVM OCaml Interface -------------*- OCaml -*-===* +- * +- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +- * See https://llvm.org/LICENSE.txt for license information. +- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +- * +- *===----------------------------------------------------------------------===*) +- +-(** Vectorize Transforms. +- +- This interface provides an OCaml API for LLVM vectorize transforms, the +- classes in the [LLVMVectorize] library. *) +- +-(** See the [llvm::createLoopVectorizePass] function. *) +-external add_loop_vectorize +- : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit +- = "llvm_add_loop_vectorize" +- +-(** See the [llvm::createSLPVectorizerPass] function. *) +-external add_slp_vectorize +- : [<Llvm.PassManager.any] Llvm.PassManager.t -> unit +- = "llvm_add_slp_vectorize" +diff --git a/llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c b/llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c +deleted file mode 100644 +index d9b15bf4588e..000000000000 +--- a/llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c ++++ /dev/null +@@ -1,32 +0,0 @@ +-/*===-- vectorize_ocaml.c - LLVM OCaml Glue ---------------------*- C++ -*-===*\ +-|* *| +-|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +-|* Exceptions. *| +-|* See https://llvm.org/LICENSE.txt for license information. *| +-|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +-|* *| +-|*===----------------------------------------------------------------------===*| +-|* *| +-|* This file glues LLVM's OCaml interface to its C interface. These functions *| +-|* are by and large transparent wrappers to the corresponding C functions. *| +-|* *| +-|* Note that these functions intentionally take liberties with the CAMLparamX *| +-|* macros, since most of the parameters are not GC heap objects. *| +-|* *| +-\*===----------------------------------------------------------------------===*/ +- +-#include "llvm-c/Transforms/Vectorize.h" +-#include "caml/mlvalues.h" +-#include "caml/misc.h" +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_loop_vectorize(LLVMPassManagerRef PM) { +- LLVMAddLoopVectorizePass(PM); +- return Val_unit; +-} +- +-/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */ +-value llvm_add_slp_vectorize(LLVMPassManagerRef PM) { +- LLVMAddSLPVectorizePass(PM); +- return Val_unit; +-} +diff --git a/llvm/docs/CMakeLists.txt b/llvm/docs/CMakeLists.txt +index 0f2681e0cd86..5e420a269632 100644 +--- a/llvm/docs/CMakeLists.txt ++++ b/llvm/docs/CMakeLists.txt +@@ -131,11 +131,7 @@ if( NOT uses_ocaml LESS 0 AND LLVM_ENABLE_OCAMLDOC ) + ocaml_llvm_irreader + ocaml_llvm_linker + ocaml_llvm_target +- ocaml_llvm_ipo +- ocaml_llvm_passmgr_builder +- ocaml_llvm_scalar_opts + ocaml_llvm_transform_utils +- ocaml_llvm_vectorize + ) + + foreach(llvm_target ${LLVM_TARGETS_TO_BUILD}) +diff --git a/llvm/test/Bindings/OCaml/core.ml b/llvm/test/Bindings/OCaml/core.ml +index f8ed68585d8a..86a5a115172c 100644 +--- a/llvm/test/Bindings/OCaml/core.ml ++++ b/llvm/test/Bindings/OCaml/core.ml +@@ -1458,29 +1458,6 @@ let test_builder () = + * CHECK: !1 = !{i32 1, !"metadata test"} + *) + +-(*===-- Pass Managers -----------------------------------------------------===*) +- +-let test_pass_manager () = +- let (++) x f = ignore (f x); x in +- +- begin group "module pass manager"; +- ignore (PassManager.create () +- ++ PassManager.run_module m +- ++ PassManager.dispose) +- end; +- +- begin group "function pass manager"; +- let fty = function_type void_type [| |] in +- let fn = define_function "FunctionPassManager" fty m in +- ignore (build_ret_void (builder_at_end context (entry_block fn))); +- +- ignore (PassManager.create_function m +- ++ PassManager.initialize +- ++ PassManager.run_function fn +- ++ PassManager.finalize +- ++ PassManager.dispose) +- end +- + + (*===-- Memory Buffer -----------------------------------------------------===*) + +@@ -1523,7 +1500,6 @@ let _ = + suite "basic blocks" test_basic_blocks; + suite "instructions" test_instructions; + suite "builder" test_builder; +- suite "pass manager" test_pass_manager; + suite "memory buffer" test_memory_buffer; + suite "writer" test_writer; (* Keep this last; it disposes m. *) + exit !exit_status +diff --git a/llvm/test/Bindings/OCaml/ipo.ml b/llvm/test/Bindings/OCaml/ipo.ml +deleted file mode 100644 +index 9866de4e8ec1..000000000000 +--- a/llvm/test/Bindings/OCaml/ipo.ml ++++ /dev/null +@@ -1,63 +0,0 @@ +-(* RUN: rm -rf %t && mkdir -p %t && cp %s %t/ipo_opts.ml +- * RUN: %ocamlc -g -w +A -package llvm.ipo -linkpkg %t/ipo_opts.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * RUN: %ocamlopt -g -w +A -package llvm.ipo -linkpkg %t/ipo_opts.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * XFAIL: vg_leak +- *) +- +-(* Note: It takes several seconds for ocamlopt to link an executable with +- libLLVMCore.a, so it's better to write a big test than a bunch of +- little ones. *) +- +-open Llvm +-open Llvm_ipo +-open Llvm_target +- +-let context = global_context () +-let void_type = Llvm.void_type context +-let i8_type = Llvm.i8_type context +- +-(* Tiny unit test framework - really just to help find which line is busted *) +-let print_checkpoints = false +- +-let suite name f = +- if print_checkpoints then +- prerr_endline (name ^ ":"); +- f () +- +- +-(*===-- Fixture -----------------------------------------------------------===*) +- +-let filename = Sys.argv.(1) +-let m = create_module context filename +- +- +-(*===-- Transforms --------------------------------------------------------===*) +- +-let test_transforms () = +- let (++) x f = f x; x in +- +- let fty = function_type i8_type [| |] in +- let fn = define_function "fn" fty m in +- let fn2 = define_function "fn2" fty m in begin +- ignore (build_ret (const_int i8_type 4) (builder_at_end context (entry_block fn))); +- let b = builder_at_end context (entry_block fn2) in +- ignore (build_ret (build_call fty fn [| |] "" b) b); +- end; +- +- ignore (PassManager.create () +- ++ add_constant_merge +- ++ add_dead_arg_elimination +- ++ add_function_attrs +- ++ add_always_inliner +- ++ add_global_dce +- ++ PassManager.run_module m +- ++ PassManager.dispose) +- +- +-(*===-- Driver ------------------------------------------------------------===*) +- +-let _ = +- suite "transforms" test_transforms; +- dispose_module m +diff --git a/llvm/test/Bindings/OCaml/passmgr_builder.ml b/llvm/test/Bindings/OCaml/passmgr_builder.ml +deleted file mode 100644 +index f761b2a31456..000000000000 +--- a/llvm/test/Bindings/OCaml/passmgr_builder.ml ++++ /dev/null +@@ -1,60 +0,0 @@ +-(* RUN: rm -rf %t && mkdir -p %t && cp %s %t/passmgr_builder.ml +- * RUN: %ocamlc -g -w +A -package llvm.passmgr_builder -linkpkg %t/passmgr_builder.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * RUN: %ocamlopt -g -w +A -package llvm.passmgr_builder -linkpkg %t/passmgr_builder.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * XFAIL: vg_leak +- *) +- +-(* Note: It takes several seconds for ocamlopt to link an executable with +- libLLVMCore.a, so it's better to write a big test than a bunch of +- little ones. *) +- +-open Llvm +-open Llvm_passmgr_builder +- +-let context = global_context () +-let void_type = Llvm.void_type context +- +-(* Tiny unit test framework - really just to help find which line is busted *) +-let print_checkpoints = false +- +-let suite name f = +- if print_checkpoints then +- prerr_endline (name ^ ":"); +- f () +- +- +-(*===-- Fixture -----------------------------------------------------------===*) +- +-let filename = Sys.argv.(1) +-let m = create_module context filename +- +- +-(*===-- Pass Manager Builder ----------------------------------------------===*) +- +-let test_pmbuilder () = +- let (++) x f = ignore (f x); x in +- +- let module_passmgr = PassManager.create () in +- let func_passmgr = PassManager.create_function m in +- +- ignore (Llvm_passmgr_builder.create () +- ++ set_opt_level 3 +- ++ set_size_level 1 +- ++ set_disable_unit_at_a_time false +- ++ set_disable_unroll_loops false +- ++ use_inliner_with_threshold 10 +- ++ populate_function_pass_manager func_passmgr +- ++ populate_module_pass_manager module_passmgr); +- Gc.compact (); +- +- PassManager.dispose module_passmgr; +- PassManager.dispose func_passmgr +- +- +-(*===-- Driver ------------------------------------------------------------===*) +- +-let _ = +- suite "pass manager builder" test_pmbuilder; +- dispose_module m +diff --git a/llvm/test/Bindings/OCaml/scalar_opts.ml b/llvm/test/Bindings/OCaml/scalar_opts.ml +deleted file mode 100644 +index 861e38c4bf01..000000000000 +--- a/llvm/test/Bindings/OCaml/scalar_opts.ml ++++ /dev/null +@@ -1,87 +0,0 @@ +-(* RUN: rm -rf %t && mkdir -p %t && cp %s %t/scalar_opts.ml +- * RUN: %ocamlc -g -w +A -package llvm.scalar_opts -linkpkg %t/scalar_opts.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * RUN: %ocamlopt -g -w +A -package llvm.scalar_opts -linkpkg %t/scalar_opts.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * XFAIL: vg_leak +- *) +- +-(* Note: It takes several seconds for ocamlopt to link an executable with +- libLLVMCore.a, so it's better to write a big test than a bunch of +- little ones. *) +- +-open Llvm +-open Llvm_scalar_opts +-open Llvm_target +- +-let context = global_context () +-let void_type = Llvm.void_type context +- +-(* Tiny unit test framework - really just to help find which line is busted *) +-let print_checkpoints = false +- +-let suite name f = +- if print_checkpoints then +- prerr_endline (name ^ ":"); +- f () +- +- +-(*===-- Fixture -----------------------------------------------------------===*) +- +-let filename = Sys.argv.(1) +-let m = create_module context filename +- +- +-(*===-- Transforms --------------------------------------------------------===*) +- +-let test_transforms () = +- 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))); +- +- ignore (PassManager.create_function m +- ++ add_aggressive_dce +- ++ 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_rotation +- ++ add_loop_unroll +- ++ add_memcpy_opt +- ++ add_partially_inline_lib_calls +- ++ add_lower_switch +- ++ add_memory_to_register_promotion +- ++ add_reassociation +- ++ 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_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 +- ++ PassManager.initialize +- ++ PassManager.run_function fn +- ++ PassManager.finalize +- ++ PassManager.dispose) +- +- +-(*===-- Driver ------------------------------------------------------------===*) +- +-let _ = +- suite "transforms" test_transforms; +- dispose_module m +diff --git a/llvm/test/Bindings/OCaml/target.ml b/llvm/test/Bindings/OCaml/target.ml +index 900668147b74..e9465fd0eb29 100644 +--- a/llvm/test/Bindings/OCaml/target.ml ++++ b/llvm/test/Bindings/OCaml/target.ml +@@ -82,9 +82,7 @@ let test_target_machine () = + assert_equal (TM.cpu machine) ""; + assert_equal (TM.features machine) ""; + ignore (TM.data_layout machine); +- TM.set_verbose_asm true machine; +- let pm = PassManager.create () in +- TM.add_analysis_passes pm machine ++ TM.set_verbose_asm true machine + + + (*===-- Code Emission -----------------------------------------------------===*) +diff --git a/llvm/test/Bindings/OCaml/vectorize.ml b/llvm/test/Bindings/OCaml/vectorize.ml +deleted file mode 100644 +index 72cd191b3626..000000000000 +--- a/llvm/test/Bindings/OCaml/vectorize.ml ++++ /dev/null +@@ -1,55 +0,0 @@ +-(* RUN: rm -rf %t && mkdir -p %t && cp %s %t/vectorize_opts.ml +- * RUN: %ocamlc -g -w +A -package llvm.vectorize -linkpkg %t/vectorize_opts.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * RUN: %ocamlopt -g -w +A -package llvm.vectorize -linkpkg %t/vectorize_opts.ml -o %t/executable +- * RUN: %t/executable %t/bitcode.bc +- * XFAIL: vg_leak +- *) +- +-(* Note: It takes several seconds for ocamlopt to link an executable with +- libLLVMCore.a, so it's better to write a big test than a bunch of +- little ones. *) +- +-open Llvm +-open Llvm_vectorize +-open Llvm_target +- +-let context = global_context () +-let void_type = Llvm.void_type context +- +-(* Tiny unit test framework - really just to help find which line is busted *) +-let print_checkpoints = false +- +-let suite name f = +- if print_checkpoints then +- prerr_endline (name ^ ":"); +- f () +- +- +-(*===-- Fixture -----------------------------------------------------------===*) +- +-let filename = Sys.argv.(1) +-let m = create_module context filename +- +- +-(*===-- Transforms --------------------------------------------------------===*) +- +-let test_transforms () = +- 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))); +- +- ignore (PassManager.create () +- ++ add_loop_vectorize +- ++ add_slp_vectorize +- ++ PassManager.run_module m +- ++ PassManager.dispose) +- +- +-(*===-- Driver ------------------------------------------------------------===*) +- +-let _ = +- suite "transforms" test_transforms; +- dispose_module m +diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt +index 5f52ce73c782..9339940baf58 100644 +--- a/llvm/test/CMakeLists.txt ++++ b/llvm/test/CMakeLists.txt +@@ -212,11 +212,7 @@ if(TARGET ocaml_llvm) + ocaml_llvm_irreader + ocaml_llvm_linker + ocaml_llvm_target +- ocaml_llvm_ipo +- ocaml_llvm_passmgr_builder +- ocaml_llvm_scalar_opts + ocaml_llvm_transform_utils +- ocaml_llvm_vectorize + ) + endif() + +-- +2.39.2 + |