Skip to content
Snippets Groups Projects
Commit ecc99065 authored by Adrian Sampson's avatar Adrian Sampson
Browse files

Use the auto-registration trick

parent 22cd1711
No related branches found
No related tags found
No related merge requests found
...@@ -13,5 +13,4 @@ Build: ...@@ -13,5 +13,4 @@ Build:
Run: Run:
$ clang -emit-llvm -c -o something.bc something.c $ clang -Xclang -load -Xclang build/lib/SkeletonPass.* something.c
$ opt -load build/lib/SkeletonPass.* -skeleton something.bc
#include "llvm/Pass.h" #include "llvm/Pass.h"
#include "llvm/IR/Function.h" #include "llvm/IR/Function.h"
#include "llvm/Support/raw_ostream.h" #include "llvm/Support/raw_ostream.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
using namespace llvm; using namespace llvm;
namespace { namespace {
...@@ -17,4 +19,13 @@ namespace { ...@@ -17,4 +19,13 @@ namespace {
} }
char SkeletonPass::ID = 0; char SkeletonPass::ID = 0;
static RegisterPass<SkeletonPass> X("skeleton", "my great code transform");
// Automatically enable the pass.
// http://adriansampson.net/blog/clangpass.html
static void registerSkeletonPass(const PassManagerBuilder &,
legacy::PassManagerBase &PM) {
PM.add(new SkeletonPass());
}
static RegisterStandardPasses
RegisterMyPass(PassManagerBuilder::EP_EarlyAsPossible,
registerSkeletonPass);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment