Go to the documentation of this file.
30 #define DEBUG_TYPE "asm-printer"
39 std::unique_ptr<MCStreamer> Streamer)
41 MCInstLowering(&OutContext, *
this) {}
43 StringRef getPassName()
const override {
return "ARC Assembly Printer"; }
55 switch (
MI->getOpcode()) {
62 MCInstLowering.Lower(
MI, TmpInst);
63 EmitToStreamer(*OutStreamer, TmpInst);
This is an optimization pass for GlobalISel generic memory operations.
void ensureAlignment(Align A)
ensureAlignment - Make sure the function is at least A bytes aligned.
Instances of this class represent a single low-level machine instruction.
Target & getTheARCTarget()
This class is used to lower an MachineInstr into an MCInst.
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeARCAsmPrinter()
Representation of each machine instruction.
#define LLVM_EXTERNAL_VISIBILITY
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
Primary interface to the complete machine description for the target machine.
bool runOnMachineFunction(MachineFunction &MF) override
Emit the specified function out to the OutStreamer.
StringRef - Represent a constant reference to a string, i.e.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This class is intended to be used as a driving class for all asm writers.
A raw_ostream that writes to an SmallVector or SmallString.
const char LLVMTargetMachineRef TM
RegisterAsmPrinter - Helper template for registering a target specific assembly printer,...