[PGO] InstrPGO and coverage code refactoring (NFC)
[oota-llvm.git] / lib / AsmParser / Parser.cpp
index 9145a54f2a7b5bf1d5eac2409f6dcda5a3cab9a4..4e55e62ecf5c49c76cb62a82995e35a9d2fde404 100644 (file)
@@ -66,3 +66,15 @@ std::unique_ptr<Module> llvm::parseAssemblyString(StringRef AsmString,
   MemoryBufferRef F(AsmString, "<string>");
   return parseAssembly(F, Err, Context, Slots);
 }
+
+Constant *llvm::parseConstantValue(StringRef Asm, SMDiagnostic &Err,
+                                   const Module &M, const SlotMapping *Slots) {
+  SourceMgr SM;
+  std::unique_ptr<MemoryBuffer> Buf = MemoryBuffer::getMemBuffer(Asm);
+  SM.AddNewSourceBuffer(std::move(Buf), SMLoc());
+  Constant *C;
+  if (LLParser(Asm, SM, Err, const_cast<Module *>(&M))
+          .parseStandaloneConstantValue(C, Slots))
+    return nullptr;
+  return C;
+}