diff --git a/include/llvm-c/Transforms/Scalar.h b/include/llvm-c/Transforms/Scalar.h index 2c5a3714d4d..786b6e95cbd 100644 --- a/include/llvm-c/Transforms/Scalar.h +++ b/include/llvm-c/Transforms/Scalar.h @@ -79,6 +79,10 @@ void LLVMAddSCCPPass(LLVMPassManagerRef PM); /** See llvm::createScalarReplAggregatesPass function. */ void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM); +/** See llvm::createScalarReplAggregatesPass function. */ +void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, + int Threshold); + /** See llvm::createSimplifyLibCallsPass function. */ void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM); @@ -91,6 +95,12 @@ void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM); /** See llvm::demotePromoteMemoryToRegisterPass function. */ void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM); +/** See llvm::createVerifierPass function. */ +void LLVMAddVerifierPass(LLVMPassManagerRef PM); + +/** PM->add(new TargetData(M)) */ +void LLVMAddTargetData(LLVMPassManagerRef PM, LLVMModuleRef M); + #ifdef __cplusplus } #endif /* defined(__cplusplus) */ diff --git a/lib/Transforms/Scalar/Scalar.cpp b/lib/Transforms/Scalar/Scalar.cpp index b54565cb80e..5ad87b0a3bf 100644 --- a/lib/Transforms/Scalar/Scalar.cpp +++ b/lib/Transforms/Scalar/Scalar.cpp @@ -14,6 +14,8 @@ #include "llvm-c/Transforms/Scalar.h" #include "llvm/PassManager.h" +#include "llvm/Analysis/Verifier.h" +#include "llvm/Target/TargetData.h" #include "llvm/Transforms/Scalar.h" using namespace llvm; @@ -90,6 +92,11 @@ void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createScalarReplAggregatesPass()); } +void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, + int Threshold) { + unwrap(PM)->add(createScalarReplAggregatesPass(Threshold)); +} + void LLVMAddSimplifyLibCallsPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createSimplifyLibCallsPass()); } @@ -105,3 +112,11 @@ void LLVMAddConstantPropagationPass(LLVMPassManagerRef PM) { void LLVMAddDemoteMemoryToRegisterPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createDemoteRegisterToMemoryPass()); } + +void LLVMAddVerifierPass(LLVMPassManagerRef PM) { + unwrap(PM)->add(createVerifierPass()); +} + +void LLVMAddTargetData(LLVMPassManagerRef PM, LLVMModuleRef M) { + unwrap(PM)->add(new TargetData(unwrap(M))); +}