Lines Matching refs:llvm

28 #include "llvm/Bitcode/ReaderWriter.h"
29 #include "llvm/IR/Constants.h"
30 #include "llvm/IR/LLVMContext.h"
31 #include "llvm/IR/Module.h"
32 #include "llvm/IR/Function.h"
33 #include "llvm/Support/MemoryBuffer.h"
41 llvm::StringRef getStringOperand(const llvm::Metadata *node) {
42 if (auto *mds = llvm::dyn_cast_or_null<const llvm::MDString>(node)) {
45 return llvm::StringRef();
49 const llvm::Metadata *m) {
50 llvm::StringRef SigString = getStringOperand(m);
63 static const llvm::StringRef PragmaMetadataName = "#pragma";
67 static const llvm::StringRef ExportVarMetadataName = "#rs_export_var";
71 static const llvm::StringRef ExportFuncMetadataName = "#rs_export_func";
75 static const llvm::StringRef ExportForEachNameMetadataName =
80 static const llvm::StringRef ExportForEachMetadataName = "#rs_export_foreach";
84 static const llvm::StringRef ObjectSlotMetadataName = "#rs_object_slots";
86 static const llvm::StringRef ThreadableMetadataName = "#rs_is_threadable";
90 static const llvm::StringRef ChecksumMetadataName = "#rs_build_checksum";
108 MetadataExtractor::MetadataExtractor(const llvm::Module *module)
178 const llvm::NamedMDNode *ObjectSlotMetadata) {
193 llvm::MDNode *ObjectSlot = ObjectSlotMetadata->getOperand(i);
211 static const char *createStringFromValue(llvm::Metadata *m) {
221 const llvm::NamedMDNode *PragmaMetadata) {
235 llvm::MDNode *Pragma = PragmaMetadata->getOperand(i);
237 llvm::Metadata *PragmaKeyMDS = Pragma->getOperand(0);
239 llvm::Metadata *PragmaValueMDS = Pragma->getOperand(1);
297 const llvm::NamedMDNode *VarNameMetadata) {
310 llvm::MDNode *Name = VarNameMetadata->getOperand(i);
323 const llvm::NamedMDNode *FuncNameMetadata) {
336 llvm::MDNode *Name = FuncNameMetadata->getOperand(i);
348 uint32_t MetadataExtractor::calculateNumInputs(const llvm::Function *Function,
371 const llvm::NamedMDNode *Names,
372 const llvm::NamedMDNode *Signatures) {
407 llvm::MDNode *SigNode = Signatures->getOperand(i);
421 llvm::MDNode *Name = Names->getOperand(i);
425 llvm::Function *Func =
426 mModule->getFunction(llvm::StringRef(TmpNameList[i]));
451 const llvm::NamedMDNode *ThreadableMetadata) {
461 llvm::MDNode *mdNode = ThreadableMetadata->getOperand(0);
465 llvm::Metadata *mdValue = mdNode->getOperand(0);
474 const llvm::NamedMDNode *ChecksumMetadata) {
479 llvm::MDNode *mdNode = ChecksumMetadata->getOperand(0);
483 llvm::Metadata *mdValue = mdNode->getOperand(0);
496 std::unique_ptr<llvm::LLVMContext> mContext;
499 mContext.reset(new llvm::LLVMContext());
500 std::unique_ptr<llvm::MemoryBuffer> MEM(
501 llvm::MemoryBuffer::getMemBuffer(
502 llvm::StringRef(mBitcode, mBitcodeSize), "", false));
506 llvm::ErrorOr<llvm::Module* > errval = llvm::parseBitcodeFile(MEM.get()->getMemBufferRef(),
516 const llvm::NamedMDNode *ExportVarMetadata =
518 const llvm::NamedMDNode *ExportFuncMetadata =
520 const llvm::NamedMDNode *ExportForEachNameMetadata =
522 const llvm::NamedMDNode *ExportForEachMetadata =
524 const llvm::NamedMDNode *PragmaMetadata =
526 const llvm::NamedMDNode *ObjectSlotMetadata =
528 const llvm::NamedMDNode *ThreadableMetadata =
530 const llvm::NamedMDNode *ChecksumMetadata =