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, 0 insertions, 1622 deletions
diff --git a/0002-OCaml-Remove-all-PassManager-related-functions.patch b/0002-OCaml-Remove-all-PassManager-related-functions.patch deleted file mode 100644 index 49c5049c5f66..000000000000 --- a/0002-OCaml-Remove-all-PassManager-related-functions.patch +++ /dev/null @@ -1,1622 +0,0 @@ -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 - |