[NewPM] Update pass registration for the LLVM plugin interface

Summary:
As of rL329273, LLVM has a mechanism to load new-pm plugins in opt. Use
this API in Polly.

Reviewers: grosser, Meinersbur, bollu

Reviewed By: grosser, Meinersbur

Subscribers: lksbhm, bollu, pollydev, llvm-commits

Differential Revision: https://reviews.llvm.org/D45484

llvm-svn: 330181
This commit is contained in:
Philip Pfaffe 2018-04-17 07:59:46 +00:00
parent 21458fdc55
commit 8da7d1d7ee
3 changed files with 23 additions and 0 deletions

View File

@ -42,6 +42,7 @@
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Passes/PassBuilder.h"
#include "llvm/Passes/PassPlugin.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
@ -703,3 +704,10 @@ void RegisterPollyPasses(PassBuilder &PB) {
// FIXME else Error?
}
} // namespace polly
// Plugin Entrypoint:
extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK LLVM_PLUGIN_EXPORT
llvmGetPassPluginInfo() {
return {LLVM_PLUGIN_API_VERSION, "Polly", LLVM_VERSION_STRING,
polly::RegisterPollyPasses};
}

View File

@ -0,0 +1,13 @@
; RUN: opt %loadPolly -passes='polly-prepare,scop(print<polly-ast>)' -S < %s \
; RUN: | FileCheck %s
; This testcase tests plugin registration. Check-lines below serve to verify
; that the passes actually ran.
; CHECK-LABEL: void @foo
; CHECK-NEXT: entry:
; CHECK-NEXT: br label %entry.split
define void @foo() {
entry:
ret void
}

View File

@ -45,6 +45,8 @@ if config.link_polly_into_tools == '' or \
config.link_polly_into_tools.lower() == 'notfound' or \
config.link_polly_into_tools.lower() == 'link_polly_into_tools-notfound':
config.substitutions.append(('%loadPolly', '-load '
+ config.polly_lib_dir + '/LLVMPolly@LLVM_SHLIBEXT@'
+ ' -load-pass-plugin '
+ config.polly_lib_dir + '/LLVMPolly@LLVM_SHLIBEXT@'
+ ' -polly-process-unprofitable '
+ ' -polly-remarks-minimal '