Index: llvm/trunk/bindings/go/llvm/transforms_pmbuilder.go =================================================================== --- llvm/trunk/bindings/go/llvm/transforms_pmbuilder.go +++ llvm/trunk/bindings/go/llvm/transforms_pmbuilder.go @@ -66,3 +66,7 @@ func (pmb PassManagerBuilder) UseInlinerWithThreshold(threshold uint) { C.LLVMPassManagerBuilderUseInlinerWithThreshold(pmb.C, C.uint(threshold)) } + +func (pmb PassManagerBuilder) AddCoroutinePassesToExtensionPoints() { + C.LLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints(pmb.C); +} Index: llvm/trunk/include/llvm-c/Transforms/PassManagerBuilder.h =================================================================== --- llvm/trunk/include/llvm-c/Transforms/PassManagerBuilder.h +++ llvm/trunk/include/llvm-c/Transforms/PassManagerBuilder.h @@ -79,6 +79,9 @@ LLVMBool Internalize, LLVMBool RunInliner); +/** See llvm::addCoroutinePassesToExtensionPoints. */ +void LLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints(LLVMPassManagerBuilderRef PMB); + /** * @} */ Index: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp =================================================================== --- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp +++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -30,6 +30,7 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h" +#include "llvm/Transforms/Coroutines.h" #include "llvm/Transforms/IPO.h" #include "llvm/Transforms/IPO/ForceFunctionAttrs.h" #include "llvm/Transforms/IPO/FunctionAttrs.h" @@ -1068,3 +1069,9 @@ Builder->populateLTOPassManager(*LPM); } + +void +LLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints(LLVMPassManagerBuilderRef PMB) { + PassManagerBuilder *Builder = unwrap(PMB); + addCoroutinePassesToExtensionPoints(*Builder); +}