30#define DEBUG_TYPE "asm-printer"
41 std::unique_ptr<MCStreamer> Streamer)
43 MCInstLowering(&OutContext, *
this) {}
45 StringRef getPassName()
const override {
return "ARC Assembly Printer"; }
54 ARC_MC::verifyInstructionPredicates(
MI->getOpcode(),
55 getSubtargetInfo().getFeatureBits());
58 raw_svector_ostream
O(Str);
60 switch (
MI->getOpcode()) {
67 MCInstLowering.
Lower(
MI, TmpInst);
68 EmitToStreamer(*OutStreamer, TmpInst);
71bool ARCAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
77char ARCAsmPrinter::ID = 0;
This file contains the declaration of the ARCInstPrinter class, which is used to print ARC MCInst to ...
#define LLVM_EXTERNAL_VISIBILITY
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")
This class is used to lower an MachineInstr into an MCInst.
void Lower(const MachineInstr *MI, MCInst &OutMI) const
This class is intended to be used as a driving class for all asm writers.
bool runOnMachineFunction(MachineFunction &MF) override
Emit the specified function out to the OutStreamer.
void ensureAlignment(Align A)
ensureAlignment - Make sure the function is at least A bytes aligned.
Representation of each machine instruction.
StringRef - Represent a constant reference to a string, i.e.
Primary interface to the complete machine description for the target machine.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
constexpr char Align[]
Key for Kernel::Arg::Metadata::mAlign.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
Target & getTheARCTarget()
RegisterAsmPrinter - Helper template for registering a target specific assembly printer,...