[llvm] r342475 - [LLVM-C][OCaml] Add LowerAtomic pass to C and OCaml APIs
whitequark via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 18 06:35:51 PDT 2018
Author: whitequark
Date: Tue Sep 18 06:35:50 2018
New Revision: 342475
URL: http://llvm.org/viewvc/llvm-project?rev=342475&view=rev
Log:
[LLVM-C][OCaml] Add LowerAtomic pass to C and OCaml APIs
Summary:
Adds LLVMAddLowerAtomicPass to expose createLowerAtomicPass in the C
and OCaml APIs.
Reviewers: whitequark, deadalnix
Reviewed By: whitequark
Subscribers: jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D52211
Modified:
llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml
llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli
llvm/trunk/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
llvm/trunk/include/llvm-c/Transforms/Scalar.h
llvm/trunk/lib/Transforms/Scalar/Scalar.cpp
Modified: llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml?rev=342475&r1=342474&r2=342475&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml (original)
+++ llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml Tue Sep 18 06:35:50 2018
@@ -64,6 +64,9 @@ external 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"
Modified: llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli?rev=342475&r1=342474&r2=342475&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli (original)
+++ llvm/trunk/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli Tue Sep 18 06:35:50 2018
@@ -107,6 +107,11 @@ 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
Modified: llvm/trunk/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c?rev=342475&r1=342474&r2=342475&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c (original)
+++ llvm/trunk/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c Tue Sep 18 06:35:50 2018
@@ -135,6 +135,12 @@ CAMLprim value llvm_add_partially_inline
}
/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
+CAMLprim value llvm_add_lower_atomic(LLVMPassManagerRef PM) {
+ LLVMAddLowerAtomicPass(PM);
+ return Val_unit;
+}
+
+/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
CAMLprim value llvm_add_lower_switch(LLVMPassManagerRef PM) {
LLVMAddLowerSwitchPass(PM);
return Val_unit;
Modified: llvm/trunk/include/llvm-c/Transforms/Scalar.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/Transforms/Scalar.h?rev=342475&r1=342474&r2=342475&view=diff
==============================================================================
--- llvm/trunk/include/llvm-c/Transforms/Scalar.h (original)
+++ llvm/trunk/include/llvm-c/Transforms/Scalar.h Tue Sep 18 06:35:50 2018
@@ -92,6 +92,9 @@ void LLVMAddLoopUnrollAndJamPass(LLVMPas
/** See llvm::createLoopUnswitchPass function. */
void LLVMAddLoopUnswitchPass(LLVMPassManagerRef PM);
+/** See llvm::createLowerAtomicPass function. */
+void LLVMAddLowerAtomicPass(LLVMPassManagerRef PM);
+
/** See llvm::createMemCpyOptPass function. */
void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM);
Modified: llvm/trunk/lib/Transforms/Scalar/Scalar.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/Scalar.cpp?rev=342475&r1=342474&r2=342475&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/Scalar.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/Scalar.cpp Tue Sep 18 06:35:50 2018
@@ -194,6 +194,10 @@ void LLVMAddLoopUnswitchPass(LLVMPassMan
unwrap(PM)->add(createLoopUnswitchPass());
}
+void LLVMAddLowerAtomicPass(LLVMPassManagerRef PM) {
+ unwrap(PM)->add(createLowerAtomicPass());
+}
+
void LLVMAddMemCpyOptPass(LLVMPassManagerRef PM) {
unwrap(PM)->add(createMemCpyOptPass());
}
More information about the llvm-commits
mailing list