blob: 433d98c96c00aba6f9dc000df528e49d7a122977 [file] [log] [blame]
//===-- FuncSpec.cpp - Clone Functions With Constant Function Ptr Args ----===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This pass clones functions that take constant function pointers as arguments
// from some call sites. It changes those call sites to call cloned functions.
//
//===----------------------------------------------------------------------===//
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/Pass.h"
namespace llvm {
//
// Class: FuncSpec
//
// Description:
// Implement an LLVM pass that clones functions which are passed
// as an argument
//
//
class FuncSpec : public ModulePass {
public:
static char ID;
FuncSpec() : ModulePass(ID) {}
virtual bool runOnModule(Module& M);
};
}