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