LLVM  4.0.0
SystemZAsmPrinter.h
Go to the documentation of this file.
1 //===-- SystemZAsmPrinter.h - SystemZ LLVM assembly printer ----*- 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 #ifndef LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZASMPRINTER_H
11 #define LLVM_LIB_TARGET_SYSTEMZ_SYSTEMZASMPRINTER_H
12 
13 #include "SystemZTargetMachine.h"
15 #include "llvm/Support/Compiler.h"
16 
17 namespace llvm {
18 class MCStreamer;
19 class MachineBasicBlock;
20 class MachineInstr;
21 class Module;
22 class raw_ostream;
23 
25 public:
26  SystemZAsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer> Streamer)
27  : AsmPrinter(TM, std::move(Streamer)) {}
28 
29  // Override AsmPrinter.
30  StringRef getPassName() const override { return "SystemZ Assembly Printer"; }
31  void EmitInstruction(const MachineInstr *MI) override;
32  void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) override;
33  bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
34  unsigned AsmVariant, const char *ExtraCode,
35  raw_ostream &OS) override;
36  bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
37  unsigned AsmVariant, const char *ExtraCode,
38  raw_ostream &OS) override;
39 };
40 } // end namespace llvm
41 
42 #endif
SystemZAsmPrinter(TargetMachine &TM, std::unique_ptr< MCStreamer > Streamer)
This class is intended to be used as a driving class for all asm writers.
Definition: AsmPrinter.h:67
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
Definition: Compiler.h:105
Abstract base class for all machine specific constantpool value subclasses.
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
Representation of each machine instruction.
Definition: MachineInstr.h:52
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:44
Primary interface to the complete machine description for the target machine.
IRTranslator LLVM IR MI
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:47