C and Objective Caml bindings for mem2reg and reg2mem.
authorGordon Henriksen <gordonhenriksen@mac.com>
Thu, 20 Mar 2008 17:16:03 +0000 (17:16 +0000)
committerGordon Henriksen <gordonhenriksen@mac.com>
Thu, 20 Mar 2008 17:16:03 +0000 (17:16 +0000)
Patch by Erick Tryzelaar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48602 91177308-0d34-0410-b5e6-96231b3b80d8

bindings/ocaml/transforms/scalar/llvm_scalar_opts.ml
bindings/ocaml/transforms/scalar/llvm_scalar_opts.mli
bindings/ocaml/transforms/scalar/scalar_opts_ocaml.c
include/llvm-c/Transforms/Scalar.h
lib/Transforms/Scalar/Scalar.cpp

index 8b6b7f9879bb78da3d6c279574519156567825a4..b4563b716a8216b70cf6da63f61d69c15a070932 100644 (file)
@@ -13,6 +13,14 @@ external add_constant_propagation : [<Llvm.PassManager.any] Llvm.PassManager.t
 external add_instruction_combining : [<Llvm.PassManager.any] Llvm.PassManager.t
                                      -> unit
                                    = "llvm_add_instruction_combining"
+external
+add_memory_to_register_promotion : [<Llvm.PassManager.any] Llvm.PassManager.t
+                                   -> unit
+                                 = "llvm_add_memory_to_register_promotion"
+external
+add_memory_to_register_demotion : [<Llvm.PassManager.any] Llvm.PassManager.t
+                                  -> unit
+                                = "llvm_add_memory_to_register_demotion"
 external add_reassociation : [<Llvm.PassManager.any] Llvm.PassManager.t
                              -> unit
                            = "llvm_add_reassociation"
index 19efaa015e05c5dbcc04dbeff7df4abf0588bc5f..6fcce0432d7152857205de126bf87d8620b53885 100644 (file)
@@ -22,6 +22,18 @@ external add_instruction_combining : [<Llvm.PassManager.any] Llvm.PassManager.t
                                      -> unit
                                    = "llvm_add_instruction_combining"
 
+(** See the [llvm::createPromoteMemoryToRegisterPass] function. *)
+external
+add_memory_to_register_promotion : [<Llvm.PassManager.any] Llvm.PassManager.t
+                                   -> unit
+                                 = "llvm_add_memory_to_register_promotion"
+
+(** See the [llvm::createDemoteMemoryToRegisterPass] function. *)
+external
+add_memory_to_register_demotion : [<Llvm.PassManager.any] Llvm.PassManager.t
+                                  -> unit
+                                = "llvm_add_memory_to_register_demotion"
+
 (** See the [llvm::createReassociatePass] function. *)
 external add_reassociation : [<Llvm.PassManager.any] Llvm.PassManager.t
                              -> unit
index 5ceb3699ccb68d8ec64738d167c09e434925a99d..87c106098432a48bc7aa964a849df0ddd24bb8eb 100644 (file)
@@ -31,6 +31,18 @@ CAMLprim value llvm_add_instruction_combining(LLVMPassManagerRef PM) {
   return Val_unit;
 }
 
+/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
+CAMLprim value llvm_add_memory_to_register_promotion(LLVMPassManagerRef PM) {
+  LLVMAddPromoteMemoryToRegisterPass(PM);
+  return Val_unit;
+}
+
+/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
+CAMLprim value llvm_add_memory_to_register_demotion(LLVMPassManagerRef PM) {
+  LLVMAddDemoteMemoryToRegisterPass(PM);
+  return Val_unit;
+}
+
 /* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
 CAMLprim value llvm_add_reassociation(LLVMPassManagerRef PM) {
   LLVMAddReassociatePass(PM);
index 00e8c35102431254a0b93bc7994ef54a4241476e..6e0ff12c5f69f36845dddb0d7440420d702a7c91 100644 (file)
@@ -31,6 +31,12 @@ void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM);
 /** See llvm::createInstructionCombiningPass function. */
 void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
 
+/** See llvm::createPromoteMemoryToRegisterPass function. */
+void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
+
+/** See llvm::demotePromoteMemoryToRegisterPass function. */
+void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM);
+
 /** See llvm::createReassociatePass function. */
 void LLVMAddReassociatePass(LLVMPassManagerRef PM);
 
index 08b6bb3eeea9312a00a4eb6e043151e7e919c80c..838f52b35f81c2c073dfecdd720c719756de805f 100644 (file)
@@ -26,6 +26,14 @@ void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM) {
   unwrap(PM)->add(createInstructionCombiningPass());
 }
 
+void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
+  unwrap(PM)->add(createPromoteMemoryToRegisterPass());
+}
+
+void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) {
+  unwrap(PM)->add(createDemoteRegisterToMemoryPass());
+}
+
 void LLVMAddReassociatePass(LLVMPassManagerRef PM) {
   unwrap(PM)->add(createReassociatePass());
 }