File tree 10 files changed +41
-0
lines changed
bindings/ocaml/transforms
include/llvm-c/Transforms
10 files changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,12 @@ CAMLprim value llvm_add_constant_merge(LLVMPassManagerRef PM) {
31
31
return Val_unit;
32
32
}
33
33
34
+ /* [`Module] Llvm.PassManager.t -> unit */
35
+ CAMLprim value llvm_add_merge_functions (LLVMPassManagerRef PM) {
36
+ LLVMAddMergeFunctionsPass (PM);
37
+ return Val_unit;
38
+ }
39
+
34
40
/* [`Module] Llvm.PassManager.t -> unit */
35
41
CAMLprim value llvm_add_dead_arg_elimination (LLVMPassManagerRef PM) {
36
42
LLVMAddDeadArgEliminationPass (PM);
Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ external add_argument_promotion
12
12
external add_constant_merge
13
13
: [ `Module ] Llvm.PassManager. t -> unit
14
14
= " llvm_add_constant_merge"
15
+ external add_merge_functions
16
+ : [ `Module ] Llvm.PassManager. t -> unit
17
+ = " llvm_add_merge_functions"
15
18
external add_dead_arg_elimination
16
19
: [ `Module ] Llvm.PassManager. t -> unit
17
20
= " llvm_add_dead_arg_elimination"
Original file line number Diff line number Diff line change @@ -21,6 +21,11 @@ external add_constant_merge
21
21
: [ `Module ] Llvm.PassManager. t -> unit
22
22
= " llvm_add_constant_merge"
23
23
24
+ (* * See the [llvm::createMergeFunctionsPass] function. *)
25
+ external add_merge_functions
26
+ : [ `Module ] Llvm.PassManager. t -> unit
27
+ = " llvm_add_merge_functions"
28
+
24
29
(* * See the [llvm::createDeadArgEliminationPass] function. *)
25
30
external add_dead_arg_elimination
26
31
: [ `Module ] Llvm.PassManager. t -> unit
Original file line number Diff line number Diff line change 9
9
external add_aggressive_dce
10
10
: [< Llvm.PassManager. any ] Llvm.PassManager. t -> unit
11
11
= " llvm_add_aggressive_dce"
12
+ external add_dce
13
+ : [< Llvm.PassManager. any ] Llvm.PassManager. t -> unit
14
+ = " llvm_add_dce"
12
15
external add_alignment_from_assumptions
13
16
: [< Llvm.PassManager. any ] Llvm.PassManager. t -> unit
14
17
= " llvm_add_alignment_from_assumptions"
Original file line number Diff line number Diff line change @@ -16,6 +16,11 @@ external add_aggressive_dce
16
16
: [< Llvm.PassManager. any ] Llvm.PassManager. t -> unit
17
17
= " llvm_add_aggressive_dce"
18
18
19
+ (* * See the [llvm::createDCEPass] function. *)
20
+ external add_dce
21
+ : [< Llvm.PassManager. any ] Llvm.PassManager. t -> unit
22
+ = " llvm_add_dce"
23
+
19
24
(* * See the [llvm::createAlignmentFromAssumptionsPass] function. *)
20
25
external add_alignment_from_assumptions
21
26
: [< Llvm.PassManager. any ] Llvm.PassManager. t -> unit
Original file line number Diff line number Diff line change @@ -26,6 +26,11 @@ CAMLprim value llvm_add_aggressive_dce(LLVMPassManagerRef PM) {
26
26
return Val_unit;
27
27
}
28
28
29
+ CAMLprim value llvm_add_dce (LLVMPassManagerRef PM) {
30
+ LLVMAddDCEPass (PM);
31
+ return Val_unit;
32
+ }
33
+
29
34
/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
30
35
CAMLprim value llvm_add_alignment_from_assumptions (LLVMPassManagerRef PM) {
31
36
LLVMAddAlignmentFromAssumptionsPass (PM);
Original file line number Diff line number Diff line change @@ -34,6 +34,9 @@ void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM);
34
34
/* * See llvm::createConstantMergePass function. */
35
35
void LLVMAddConstantMergePass (LLVMPassManagerRef PM);
36
36
37
+ /* * See llvm::createMergeFunctionsPass function. */
38
+ void LLVMAddMergeFunctionsPass (LLVMPassManagerRef PM);
39
+
37
40
/* * See llvm::createCalledValuePropagationPass function. */
38
41
void LLVMAddCalledValuePropagationPass (LLVMPassManagerRef PM);
39
42
Original file line number Diff line number Diff line change @@ -35,6 +35,9 @@ extern "C" {
35
35
/* * See llvm::createAggressiveDCEPass function. */
36
36
void LLVMAddAggressiveDCEPass (LLVMPassManagerRef PM);
37
37
38
+ /* * See llvm::createDeadCodeEliminationPass function. */
39
+ void LLVMAddDCEPass (LLVMPassManagerRef PM);
40
+
38
41
/* * See llvm::createBitTrackingDCEPass function. */
39
42
void LLVMAddBitTrackingDCEPass (LLVMPassManagerRef PM);
40
43
Original file line number Diff line number Diff line change @@ -114,6 +114,10 @@ void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) {
114
114
unwrap (PM)->add (createIPSCCPPass ());
115
115
}
116
116
117
+ void LLVMAddMergeFunctionsPass (LLVMPassManagerRef PM) {
118
+ unwrap (PM)->add (createMergeFunctionsPass ());
119
+ }
120
+
117
121
void LLVMAddInternalizePass (LLVMPassManagerRef PM, unsigned AllButMain) {
118
122
auto PreserveMain = [=](const GlobalValue &GV) {
119
123
return AllButMain && GV.getName () == " main" ;
Original file line number Diff line number Diff line change @@ -123,6 +123,10 @@ void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM) {
123
123
unwrap (PM)->add (createAggressiveDCEPass ());
124
124
}
125
125
126
+ void LLVMAddDCEPass (LLVMPassManagerRef PM) {
127
+ unwrap (PM)->add (createDeadCodeEliminationPass ());
128
+ }
129
+
126
130
void LLVMAddBitTrackingDCEPass (LLVMPassManagerRef PM) {
127
131
unwrap (PM)->add (createBitTrackingDCEPass ());
128
132
}
You can’t perform that action at this time.
0 commit comments