LLVM  16.0.0git
MCAsmParserExtension.cpp
Go to the documentation of this file.
1 //===- MCAsmParserExtension.cpp - Asm Parser Hooks ------------------------===//
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 
10 #include "llvm/MC/MCContext.h"
11 #include "llvm/MC/MCExpr.h"
13 #include "llvm/MC/MCStreamer.h"
14 
15 using namespace llvm;
16 
18 
20 
22  this->Parser = &Parser;
23 }
24 
25 /// ParseDirectiveCGProfile
26 /// ::= .cg_profile identifier, identifier, <number>
29  SMLoc FromLoc = getLexer().getLoc();
30  if (getParser().parseIdentifier(From))
31  return TokError("expected identifier in directive");
32 
34  return TokError("expected a comma");
35  Lex();
36 
37  StringRef To;
38  SMLoc ToLoc = getLexer().getLoc();
39  if (getParser().parseIdentifier(To))
40  return TokError("expected identifier in directive");
41 
43  return TokError("expected a comma");
44  Lex();
45 
46  int64_t Count;
47  if (getParser().parseIntToken(
48  Count, "expected integer count in '.cg_profile' directive"))
49  return true;
50 
52  return TokError("unexpected token in directive");
53 
55  MCSymbol *ToSym = getContext().getOrCreateSymbol(To);
56 
59  FromLoc),
61  ToLoc),
62  Count);
63  return false;
64 }
llvm::MCAsmParser
Generic assembler parser interface, for use by target specific assembly parsers.
Definition: MCAsmParser.h:124
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition: MCSymbol.h:41
llvm::MCAsmParserExtension::ParseDirectiveCGProfile
bool ParseDirectiveCGProfile(StringRef, SMLoc)
ParseDirectiveCGProfile ::= .cg_profile identifier, identifier, <number>
Definition: MCAsmParserExtension.cpp:27
llvm::AsmToken::EndOfStatement
@ EndOfStatement
Definition: MCAsmMacro.h:42
llvm::MCAsmParserExtension::Lex
const AsmToken & Lex()
Definition: MCAsmParserExtension.h:85
llvm::MCAsmParserExtension::~MCAsmParserExtension
virtual ~MCAsmParserExtension()
llvm::MCContext::getOrCreateSymbol
MCSymbol * getOrCreateSymbol(const Twine &Name)
Lookup the symbol inside with the specified Name.
Definition: MCContext.cpp:207
llvm::MCAsmParserExtension::getStreamer
MCStreamer & getStreamer()
Definition: MCAsmParserExtension.h:67
llvm::SMLoc
Represents a location in source code.
Definition: SMLoc.h:23
llvm::MCAsmParserExtension::getContext
MCContext & getContext()
Definition: MCAsmParserExtension.h:54
MCContext.h
llvm::MCAsmParserExtension::TokError
bool TokError(const Twine &Msg)
Definition: MCAsmParserExtension.h:81
isNot
static bool isNot(const MachineRegisterInfo &MRI, const MachineInstr &MI)
Definition: AMDGPULegalizerInfo.cpp:3189
llvm::MCStreamer::emitCGProfileEntry
virtual void emitCGProfileEntry(const MCSymbolRefExpr *From, const MCSymbolRefExpr *To, uint64_t Count)
Definition: MCStreamer.cpp:808
MCAsmLexer.h
llvm::MCAsmLexer::getLoc
SMLoc getLoc() const
Get the current source location.
Definition: MCAsmLexer.cpp:22
llvm::MCAsmParserExtension::Initialize
virtual void Initialize(MCAsmParser &Parser)
Initialize the extension for parsing using the given Parser.
Definition: MCAsmParserExtension.cpp:21
llvm::MCAsmParserExtension::MCAsmParserExtension
MCAsmParserExtension()
llvm::AsmToken::Comma
@ Comma
Definition: MCAsmMacro.h:49
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
MCAsmParserExtension.h
llvm::MCSymbolRefExpr::create
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
Definition: MCExpr.h:386
MCStreamer.h
llvm::MCSymbolRefExpr::VK_None
@ VK_None
Definition: MCExpr.h:195
llvm::MCAsmParserExtension::getLexer
MCAsmLexer & getLexer()
Definition: MCAsmParserExtension.h:56
From
BlockVerifier::State From
Definition: BlockVerifier.cpp:55
MCExpr.h
llvm::MCAsmParserExtension::getParser
MCAsmParser & getParser()
Definition: MCAsmParserExtension.h:61