18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef PERF_UTIL_CLANG_H 38c2ecf20Sopenharmony_ci#define PERF_UTIL_CLANG_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include "llvm/ADT/StringRef.h" 68c2ecf20Sopenharmony_ci#include "llvm/IR/LLVMContext.h" 78c2ecf20Sopenharmony_ci#include "llvm/IR/Module.h" 88c2ecf20Sopenharmony_ci#include "llvm/Option/Option.h" 98c2ecf20Sopenharmony_ci#include <memory> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cinamespace perf { 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciusing namespace llvm; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistd::unique_ptr<Module> 168c2ecf20Sopenharmony_cigetModuleFromSource(opt::ArgStringList CFlags, 178c2ecf20Sopenharmony_ci StringRef Name, StringRef Content); 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cistd::unique_ptr<Module> 208c2ecf20Sopenharmony_cigetModuleFromSource(opt::ArgStringList CFlags, 218c2ecf20Sopenharmony_ci StringRef Path); 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cistd::unique_ptr<llvm::SmallVectorImpl<char>> 248c2ecf20Sopenharmony_cigetBPFObjectFromModule(llvm::Module *Module); 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci} 278c2ecf20Sopenharmony_ci#endif 28