1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef PERF_UTIL_CLANG_H 3*4882a593Smuzhiyun #define PERF_UTIL_CLANG_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include "llvm/ADT/StringRef.h" 6*4882a593Smuzhiyun #include "llvm/IR/LLVMContext.h" 7*4882a593Smuzhiyun #include "llvm/IR/Module.h" 8*4882a593Smuzhiyun #include "llvm/Option/Option.h" 9*4882a593Smuzhiyun #include <memory> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun namespace perf { 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun using namespace llvm; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun std::unique_ptr<Module> 16*4882a593Smuzhiyun getModuleFromSource(opt::ArgStringList CFlags, 17*4882a593Smuzhiyun StringRef Name, StringRef Content); 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun std::unique_ptr<Module> 20*4882a593Smuzhiyun getModuleFromSource(opt::ArgStringList CFlags, 21*4882a593Smuzhiyun StringRef Path); 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun std::unique_ptr<llvm::SmallVectorImpl<char>> 24*4882a593Smuzhiyun getBPFObjectFromModule(llvm::Module *Module); 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun } 27*4882a593Smuzhiyun #endif 28