Lines Matching refs:llvm

28 #include <llvm/Bitcode/BitstreamWriter.h>
29 #include <llvm/Bitcode/ReaderWriter.h>
30 #include <llvm/DerivedTypes.h>
31 #include <llvm/Linker.h>
32 #include <llvm/LLVMContext.h>
33 #include <llvm/Module.h>
34 #include <llvm/PassManager.h>
35 #include <llvm/Support/TargetSelect.h>
36 #include <llvm/Support/MemoryBuffer.h>
37 #include <llvm/Support/PathV1.h>
38 #include <llvm/Target/TargetData.h>
39 #include <llvm/Transforms/IPO.h>
40 #include <llvm/Transforms/IPO/PassManagerBuilder.h>
58 clang::EmitObjAction act(&llvm::getGlobalContext());
60 llvm::raw_string_ostream s_log(log);
78 name, llvm::MemoryBuffer::getMemBuffer(source));
94 llvm::Module *
99 clang::EmitLLVMOnlyAction act(&llvm::getGlobalContext());
101 llvm::raw_string_ostream s_log(log);
128 llvm::MemoryBuffer::getMemBuffer(source));
138 find_kernels(llvm::Module *mod, std::vector<llvm::Function *> &kernels) {
139 const llvm::NamedMDNode *kernel_node =
142 kernels.push_back(llvm::dyn_cast<llvm::Function>(
148 link(llvm::Module *mod, const std::string &triple,
149 const std::vector<llvm::Function *> &kernels) {
151 llvm::PassManager PM;
152 llvm::PassManagerBuilder Builder;
154 llvm::Linker linker("clover", mod);
157 linker.LinkInFile(llvm::sys::Path(LIBCLC_LIBEXECDIR + triple + ".bc"), isNative);
175 for (std::vector<llvm::Function *>::const_iterator I = kernels.begin(),
178 llvm::Function *kernel = *I;
181 PM.add(llvm::createInternalizePass(export_list));
190 build_module_llvm(llvm::Module *mod,
191 const std::vector<llvm::Function *> &kernels) {
196 llvm::SmallVector<char, 1024> llvm_bitcode;
197 llvm::raw_svector_ostream bitcode_ostream(llvm_bitcode);
198 llvm::BitstreamWriter writer(llvm_bitcode);
199 llvm::WriteBitcodeToFile(mod, bitcode_ostream);
202 llvm::Function *kernel_func;
212 for (llvm::Function::arg_iterator I = kernel_func->arg_begin(),
214 llvm::Argument &arg = *I;
215 llvm::Type *arg_type = arg.getType();
216 llvm::TargetData TD(kernel_func->getParent());
219 if (llvm::isa<llvm::PointerType>(arg_type) && arg.hasByValAttr()) {
221 llvm::dyn_cast<llvm::PointerType>(arg_type)->getElementType();
228 unsigned address_space = llvm::cast<llvm::PointerType>(arg_type)->getAddressSpace();
257 std::vector<llvm::Function *> kernels;
259 llvm::Module *mod = compile(source, "cl_input", triple);