Skip to content
Snippets Groups Projects
Commit b79af324 authored by Per Lindgren's avatar Per Lindgren
Browse files

function

parent bfddf4b7
No related branches found
No related tags found
No related merge requests found
Pipeline #77 canceled
......@@ -3,26 +3,42 @@
#include "llvm/Support/raw_ostream.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
#include "llvm/Analysis/Trace.h"
#include "llvm/IR/BasicBlock.h"
using namespace llvm;
namespace {
struct SkeletonPass : public FunctionPass {
namespace
{
struct SkeletonPass : public FunctionPass
{
static char ID;
SkeletonPass() : FunctionPass(ID) {}
virtual bool runOnFunction(Function &F) {
errs() << "I saw a function called " << F.getName() << "!\n";
virtual bool runOnFunction(Function &F)
{
errs() << "Function " << F.getName() << "!\n";
for (Function::BasicBlockListType::iterator i = F.begin(), ie = F.end(); i != ie; ++i)
{
for (llvm::BasicBlock::InstListType::iterator j = i->begin(), je = i->end(); j != je; ++j)
{
Instruction *ii = &*j;
errs() << *ii << "\n";
}
}
return false;
}
};
}
} // namespace
char SkeletonPass::ID = 0;
// Automatically enable the pass.
// http://adriansampson.net/blog/clangpass.html
static void registerSkeletonPass(const PassManagerBuilder &,
legacy::PassManagerBase &PM) {
legacy::PassManagerBase &PM)
{
PM.add(new SkeletonPass());
}
static RegisterStandardPasses
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment