Files
revng-revng/include/revng/Support/OriginalAssemblyAnnotationWriter.h
2021-12-22 17:47:54 +01:00

27 lines
783 B
C++

#pragma once
//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#include "llvm/IR/AssemblyAnnotationWriter.h"
#include "llvm/IR/LLVMContext.h"
/// \brief AssemblyAnnotationWriter decorating the output original assembly/PTC
class OriginalAssemblyAnnotationWriter : public llvm::AssemblyAnnotationWriter {
public:
OriginalAssemblyAnnotationWriter(llvm::LLVMContext &Context) :
OriginalInstrMDKind(Context.getMDKindID("oi")),
PTCInstrMDKind(Context.getMDKindID("pi")) {}
~OriginalAssemblyAnnotationWriter() override = default;
virtual void
emitInstructionAnnot(const llvm::Instruction *I,
llvm::formatted_raw_ostream &Output) override;
private:
unsigned OriginalInstrMDKind;
unsigned PTCInstrMDKind;
};