MCModuleYAML.h revision cd81d94322a39503e4a3e87b6ee03d4fcb3465fb
1//===- MCModuleYAML.h - MCModule YAMLIO implementation ----------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9/// 10/// \file 11/// \brief This file declares classes for handling the YAML representation 12/// of MCModule. 13/// 14//===----------------------------------------------------------------------===// 15 16#ifndef LLVM_MC_MCANALYSIS_MCMODULEYAML_H 17#define LLVM_MC_MCANALYSIS_MCMODULEYAML_H 18 19#include "llvm/ADT/StringRef.h" 20#include "llvm/MC/MCAnalysis/MCModule.h" 21#include "llvm/Support/raw_ostream.h" 22 23namespace llvm { 24 25class MCInstrInfo; 26class MCRegisterInfo; 27 28/// \brief Dump a YAML representation of the MCModule \p MCM to \p OS. 29/// \returns The empty string on success, an error message on failure. 30StringRef mcmodule2yaml(raw_ostream &OS, const MCModule &MCM, 31 const MCInstrInfo &MII, const MCRegisterInfo &MRI); 32 33/// \brief Creates a new module and returns it in \p MCM. 34/// \returns The empty string on success, an error message on failure. 35StringRef yaml2mcmodule(std::unique_ptr<MCModule> &MCM, StringRef YamlContent, 36 const MCInstrInfo &MII, const MCRegisterInfo &MRI); 37 38} // end namespace llvm 39 40#endif 41