Lines Matching refs:llvm
44 llvm::StringRef getStringOperand(const llvm::Metadata *node) { in getStringOperand()
45 if (auto *mds = llvm::dyn_cast_or_null<const llvm::MDString>(node)) { in getStringOperand()
48 return llvm::StringRef(); in getStringOperand()
52 const llvm::Metadata *m) { in extractUIntFromMetadataString()
53 llvm::StringRef SigString = getStringOperand(m); in extractUIntFromMetadataString()
62 const char *createStringFromValue(llvm::Metadata *m) { in createStringFromValue()
70 const char *createStringFromOptionalValue(llvm::MDNode *n, unsigned opndNum) { in createStringFromOptionalValue()
71 llvm::Metadata *opnd; in createStringFromOptionalValue()
100 bool populateNameMetadata(const llvm::NamedMDNode *NameMetadata, in populateNameMetadata()
117 llvm::MDNode *Name = NameMetadata->getOperand(i); in populateNameMetadata()
140 static const llvm::StringRef PragmaMetadataName = "#pragma";
144 static const llvm::StringRef ExportVarMetadataName = "#rs_export_var";
148 static const llvm::StringRef ExportFuncMetadataName = "#rs_export_func";
152 static const llvm::StringRef ExportForEachNameMetadataName =
157 static const llvm::StringRef ExportForEachMetadataName = "#rs_export_foreach";
161 static const llvm::StringRef ExportReduceMetadataName = "#rs_export_reduce";
165 static const llvm::StringRef ObjectSlotMetadataName = "#rs_object_slots";
167 static const llvm::StringRef ThreadableMetadataName = "#rs_is_threadable";
171 static const llvm::StringRef ChecksumMetadataName = "#rs_build_checksum";
176 static const llvm::StringRef DebugInfoMetadataName = "llvm.dbg.cu";
197 MetadataExtractor::MetadataExtractor(const llvm::Module *module) in MetadataExtractor()
209 const llvm::NamedMDNode *const wrapperMDNode = module->getNamedMetadata(kWrapperMetadataName); in MetadataExtractor()
211 const llvm::MDNode *const wrapperMDTuple = wrapperMDNode->getOperand(0); in MetadataExtractor()
282 const llvm::NamedMDNode *ObjectSlotMetadata) { in populateObjectSlotMetadata()
295 llvm::MDNode *ObjectSlot = ObjectSlotMetadata->getOperand(i); in populateObjectSlotMetadata()
314 const llvm::NamedMDNode *PragmaMetadata) { in populatePragmaMetadata()
328 llvm::MDNode *Pragma = PragmaMetadata->getOperand(i); in populatePragmaMetadata()
330 llvm::Metadata *PragmaKeyMDS = Pragma->getOperand(0); in populatePragmaMetadata()
332 llvm::Metadata *PragmaValueMDS = Pragma->getOperand(1); in populatePragmaMetadata()
388 uint32_t MetadataExtractor::calculateNumInputs(const llvm::Function *Function, in calculateNumInputs()
411 const llvm::NamedMDNode *Names, in populateForEachMetadata()
412 const llvm::NamedMDNode *Signatures) { in populateForEachMetadata()
447 llvm::MDNode *SigNode = Signatures->getOperand(i); in populateForEachMetadata()
461 llvm::MDNode *Name = Names->getOperand(i); in populateForEachMetadata()
473 llvm::Function *Func = in populateForEachMetadata()
474 mModule->getFunction(llvm::StringRef(TmpNameList[i])); in populateForEachMetadata()
503 bool MetadataExtractor::populateReduceMetadata(const llvm::NamedMDNode *ReduceMetadata) { in populateReduceMetadata()
513 llvm::MDNode *Node = ReduceMetadata->getOperand(i); in populateReduceMetadata()
527 llvm::MDNode *AccumulatorNode = llvm::dyn_cast<llvm::MDNode>(Node->getOperand(2)); in populateReduceMetadata()
546 llvm::Function *Func = in populateReduceMetadata()
547 mModule->getFunction(llvm::StringRef(TmpReduceList[i].mAccumulatorName)); in populateReduceMetadata()
563 const llvm::NamedMDNode *ThreadableMetadata) { in readThreadableFlag()
573 llvm::MDNode *mdNode = ThreadableMetadata->getOperand(0); in readThreadableFlag()
577 llvm::Metadata *mdValue = mdNode->getOperand(0); in readThreadableFlag()
586 const llvm::NamedMDNode *ChecksumMetadata) { in readBuildChecksumMetadata()
591 llvm::MDNode *mdNode = ChecksumMetadata->getOperand(0); in readBuildChecksumMetadata()
595 llvm::Metadata *mdValue = mdNode->getOperand(0); in readBuildChecksumMetadata()
608 std::unique_ptr<llvm::LLVMContext> mContext; in extract()
612 mContext.reset(new llvm::LLVMContext()); in extract()
613 std::unique_ptr<llvm::MemoryBuffer> MEM( in extract()
614 llvm::MemoryBuffer::getMemBuffer( in extract()
615 llvm::StringRef(mBitcode, mBitcodeSize), "", false)); in extract()
618 llvm::ErrorOr<std::unique_ptr<llvm::Module> > errval = in extract()
619 llvm::parseBitcodeFile(MEM.get()->getMemBufferRef(), *mContext); in extract()
630 const llvm::NamedMDNode *ExportVarMetadata = in extract()
632 const llvm::NamedMDNode *ExportFuncMetadata = in extract()
634 const llvm::NamedMDNode *ExportForEachNameMetadata = in extract()
636 const llvm::NamedMDNode *ExportForEachMetadata = in extract()
638 const llvm::NamedMDNode *ExportReduceMetadata = in extract()
640 const llvm::NamedMDNode *PragmaMetadata = in extract()
642 const llvm::NamedMDNode *ObjectSlotMetadata = in extract()
644 const llvm::NamedMDNode *ThreadableMetadata = in extract()
646 const llvm::NamedMDNode *ChecksumMetadata = in extract()
648 const llvm::NamedMDNode *DebugInfoMetadata = in extract()