llir-opt  0.0.1
Low-Level Post-Link Optimiser for OCaml and C
aarch64annot_printer.h
1 // This file if part of the llir-opt project.
2 // Licensing information can be found in the LICENSE file.
3 // (C) 2018 Nandor Licker. All rights reserved.
4 
5 #pragma once
6 
7 #include "emitter/annot_printer.h"
8 
9 
10 
14 class AArch64AnnotPrinter final : public AnnotPrinter {
15 public:
16  static char ID;
17 
20  llvm::MCContext *ctx,
21  llvm::MCStreamer *os,
22  const llvm::MCObjectFileInfo *objInfo,
23  const llvm::DataLayout &layout,
24  const ISelMapping &mapping,
25  bool shared
26  );
27 
30 
32  llvm::StringRef getPassName() const override;
33 
34 private:
36  std::optional<unsigned> GetRegisterIndex(llvm::Register reg) override;
38  llvm::StringRef GetRegisterName(unsigned reg) override;
40  llvm::Register GetStackPointer() override;
42  unsigned GetImplicitStackSize() const override { return 0; }
43 };
ISelMapping
Definition: isel_mapping.h:22
AArch64AnnotPrinter::getPassName
llvm::StringRef getPassName() const override
Hardcoded name.
Definition: aarch64annot_printer.cpp:95
AnnotPrinter
Definition: annot_printer.h:47
ID
Definition: id.h:19
AArch64AnnotPrinter::AArch64AnnotPrinter
AArch64AnnotPrinter(llvm::MCContext *ctx, llvm::MCStreamer *os, const llvm::MCObjectFileInfo *objInfo, const llvm::DataLayout &layout, const ISelMapping &mapping, bool shared)
Initialises the pass which prints data sections.
Definition: aarch64annot_printer.cpp:31
AArch64AnnotPrinter
Definition: aarch64annot_printer.h:14
AArch64AnnotPrinter::~AArch64AnnotPrinter
~AArch64AnnotPrinter()
Cleanup.
Definition: aarch64annot_printer.cpp:43