[PATCH] D45484: [Polly][NewPM] Update pass registration for the LLVM plugin interface

Philip Pfaffe via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 16 03:55:31 PDT 2018


philip.pfaffe updated this revision to Diff 142615.
philip.pfaffe added a comment.

Add a testcase.


Repository:
  rPLO Polly

https://reviews.llvm.org/D45484

Files:
  lib/Support/RegisterPasses.cpp
  test/Support/Plugins.ll
  test/lit.site.cfg.in


Index: test/lit.site.cfg.in
===================================================================
--- test/lit.site.cfg.in
+++ test/lit.site.cfg.in
@@ -45,6 +45,8 @@
    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 at LLVM_SHLIBEXT@'
+                                 + ' -load-pass-plugin '
                                  + config.polly_lib_dir + '/LLVMPolly at LLVM_SHLIBEXT@'
                                  + ' -polly-process-unprofitable '
                                  + ' -polly-remarks-minimal '
Index: test/Support/Plugins.ll
===================================================================
--- /dev/null
+++ test/Support/Plugins.ll
@@ -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
+}
Index: lib/Support/RegisterPasses.cpp
===================================================================
--- lib/Support/RegisterPasses.cpp
+++ lib/Support/RegisterPasses.cpp
@@ -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 @@
   // 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};
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45484.142615.patch
Type: text/x-patch
Size: 2007 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180416/2cbcd689/attachment-0001.bin>


More information about the llvm-commits mailing list