LLVM  15.0.0git
MCNullStreamer.cpp
Go to the documentation of this file.
1 //===- lib/MC/MCNullStreamer.cpp - Dummy Streamer Implementation ----------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "llvm/ADT/StringRef.h"
10 #include "llvm/MC/MCDirectives.h"
11 #include "llvm/MC/MCStreamer.h"
12 #include "llvm/Support/SMLoc.h"
13 namespace llvm {
14 class MCContext;
15 class MCExpr;
16 class MCSection;
17 class MCSymbol;
18 } // namespace llvm
19 
20 using namespace llvm;
21 
22 namespace {
23 
24  class MCNullStreamer : public MCStreamer {
25  public:
26  MCNullStreamer(MCContext &Context) : MCStreamer(Context) {}
27 
28  /// @name MCStreamer Interface
29  /// @{
30 
31  bool hasRawTextSupport() const override { return true; }
32  void emitRawTextImpl(StringRef String) override {}
33 
34  bool emitSymbolAttribute(MCSymbol *Symbol,
35  MCSymbolAttr Attribute) override {
36  return true;
37  }
38 
39  void emitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
40  unsigned ByteAlignment) override {}
41  void emitZerofill(MCSection *Section, MCSymbol *Symbol = nullptr,
42  uint64_t Size = 0, unsigned ByteAlignment = 0,
43  SMLoc Loc = SMLoc()) override {}
44  void emitGPRel32Value(const MCExpr *Value) override {}
45  void beginCOFFSymbolDef(const MCSymbol *Symbol) override {}
46  void emitCOFFSymbolStorageClass(int StorageClass) override {}
47  void emitCOFFSymbolType(int Type) override {}
48  void endCOFFSymbolDef() override {}
49  void
50  emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol, MCSymbolAttr Linkage,
51  MCSymbolAttr Visibility) override {}
52  };
53 
54 }
55 
57  return new MCNullStreamer(Context);
58 }
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
llvm::MCContext
Context object for machine code objects.
Definition: MCContext.h:76
llvm::Attribute
Definition: Attributes.h:65
StringRef.h
MCDirectives.h
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
llvm::MCSymbolAttr
MCSymbolAttr
Definition: MCDirectives.h:18
Context
LLVMContext & Context
Definition: NVVMIntrRange.cpp:66
llvm::MCStreamer
Streaming machine code generation interface.
Definition: MCStreamer.h:212
llvm::SMLoc
Represents a location in source code.
Definition: SMLoc.h:23
SMLoc.h
llvm::XCOFF::StorageClass
StorageClass
Definition: XCOFF.h:154
uint64_t
llvm::createNullStreamer
MCStreamer * createNullStreamer(MCContext &Ctx)
Create a dummy machine code streamer, which does nothing.
Definition: MCNullStreamer.cpp:56
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::MCSection
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Definition: MCSection.h:39
llvm::LCOMM::ByteAlignment
@ ByteAlignment
Definition: MCAsmInfo.h:50
llvm::ARMBuildAttrs::Symbol
@ Symbol
Definition: ARMBuildAttributes.h:83
MCStreamer.h
llvm::Value
LLVM Value Representation.
Definition: Value.h:74
llvm::MCExpr
Base class for the full range of assembler expressions which are needed for parsing.
Definition: MCExpr.h:35