CIRCT 24.0.0git
Loading...
Searching...
No Matches
FIRParser.cpp File Reference
#include "circt/Dialect/FIRRTL/FIRParser.h"
#include "FIRLexer.h"
#include "circt/Dialect/FIRRTL/AnnotationDetails.h"
#include "circt/Dialect/FIRRTL/CHIRRTLDialect.h"
#include "circt/Dialect/FIRRTL/FIRRTLAttributes.h"
#include "circt/Dialect/FIRRTL/FIRRTLDialect.h"
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/Import/FIRAnnotations.h"
#include "circt/Dialect/HW/HWAttributes.h"
#include "circt/Dialect/HW/InnerSymbolNamespace.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/Threading.h"
#include "mlir/IR/Verifier.h"
#include "mlir/Support/Timing.h"
#include "mlir/Tools/mlir-translate/Translation.h"
#include "llvm/ADT/PointerEmbeddedInt.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/JSON.h"
#include "llvm/Support/LogicalResult.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <memory>
#include <utility>
#include "FIRTokenKinds.def"
Include dependency graph for FIRParser.cpp:

Go to the source code of this file.

Classes

class  FIRParser::LocWithInfo
 This helper class is used to handle Info records, which specify higher level symbolic source location, that may be missing from the file. More...

Macros

#define TOK_KEYWORD(spelling)
#define TOK_MARKER(X)
#define TOK_IDENTIFIER(NAME)
#define TOK_LITERAL(NAME)
#define TOK_PUNCTUATION(NAME, SPELLING)
#define TOK_LPKEYWORD(SPELLING)
#define TOK_LPKEYWORD_PRIM(SPELLING, CLASS, NUMOPERANDS, NUMATTRIBUTES, VERSION, FEATURE)
#define TOK_LESSKEYWORD(SPELLING)
#define TOK_LPKEYWORD_PRIM(SPELLING, CLASS, NUMOPERANDS, NUMATTRIBUTES, VERSION, FEATURE)
#define TOK_MARKER(X)
#define TOK_IDENTIFIER(NAME)
#define TOK_LITERAL(NAME)
#define TOK_PUNCTUATION(NAME, SPELLING)
#define TOK_KEYWORD(SPELLING)
#define TOK_LPKEYWORD(SPELLING)
#define TOK_LESSKEYWORD(SPELLING)

Typedefs

using UnbundledID = llvm::PointerEmbeddedInt<unsigned, 31>
using SymbolValueEntry = llvm::PointerUnion<Value, UnbundledID>
using ModuleSymbolTable
using ModuleSymbolTableEntry = ModuleSymbolTable::MapEntryTy
using UnbundledValueEntry = SmallVector<std::pair<Attribute, Value>>
using UnbundledValuesList = std::vector<UnbundledValueEntry>
using SubaccessCache = llvm::DenseMap<std::pair<Value, unsigned>, Value>

Macro Definition Documentation

◆ TOK_IDENTIFIER [1/2]

#define TOK_IDENTIFIER ( NAME)

◆ TOK_IDENTIFIER [2/2]

#define TOK_IDENTIFIER ( NAME)

◆ TOK_KEYWORD [1/2]

#define TOK_KEYWORD ( SPELLING)

◆ TOK_KEYWORD [2/2]

#define TOK_KEYWORD ( spelling)
Value:
case FIRToken::kw_##spelling:

◆ TOK_LESSKEYWORD [1/2]

#define TOK_LESSKEYWORD ( SPELLING)

◆ TOK_LESSKEYWORD [2/2]

#define TOK_LESSKEYWORD ( SPELLING)

◆ TOK_LITERAL [1/2]

#define TOK_LITERAL ( NAME)

◆ TOK_LITERAL [2/2]

#define TOK_LITERAL ( NAME)

◆ TOK_LPKEYWORD [1/2]

#define TOK_LPKEYWORD ( SPELLING)

◆ TOK_LPKEYWORD [2/2]

#define TOK_LPKEYWORD ( SPELLING)

◆ TOK_LPKEYWORD_PRIM [1/2]

#define TOK_LPKEYWORD_PRIM ( SPELLING,
CLASS,
NUMOPERANDS,
NUMATTRIBUTES,
VERSION,
FEATURE )
Value:
case FIRToken::lp_##SPELLING: \
if (requireFeature(VERSION, FEATURE)) \
return failure(); \
if (parsePrimExp<CLASS, NUMOPERANDS, NUMATTRIBUTES>(result)) \
return failure(); \
break;
false return failure()
Parse an optional keyword or string and set instance into 'result'.

◆ TOK_LPKEYWORD_PRIM [2/2]

#define TOK_LPKEYWORD_PRIM ( SPELLING,
CLASS,
NUMOPERANDS,
NUMATTRIBUTES,
VERSION,
FEATURE )
Value:
TOK_LPKEYWORD(SPELLING)

◆ TOK_MARKER [1/2]

#define TOK_MARKER ( X)

◆ TOK_MARKER [2/2]

#define TOK_MARKER ( X)

◆ TOK_PUNCTUATION [1/2]

#define TOK_PUNCTUATION ( NAME,
SPELLING )

◆ TOK_PUNCTUATION [2/2]

#define TOK_PUNCTUATION ( NAME,
SPELLING )

Typedef Documentation

◆ ModuleSymbolTable

Initial value:
llvm::StringMap<std::pair<SMLoc, SymbolValueEntry>, llvm::BumpPtrAllocator>

Definition at line 1513 of file FIRParser.cpp.

◆ ModuleSymbolTableEntry

using ModuleSymbolTableEntry = ModuleSymbolTable::MapEntryTy

Definition at line 1515 of file FIRParser.cpp.

◆ SubaccessCache

using SubaccessCache = llvm::DenseMap<std::pair<Value, unsigned>, Value>

Definition at line 1532 of file FIRParser.cpp.

◆ SymbolValueEntry

using SymbolValueEntry = llvm::PointerUnion<Value, UnbundledID>

Definition at line 1511 of file FIRParser.cpp.

◆ UnbundledID

using UnbundledID = llvm::PointerEmbeddedInt<unsigned, 31>

Definition at line 1510 of file FIRParser.cpp.

◆ UnbundledValueEntry

using UnbundledValueEntry = SmallVector<std::pair<Attribute, Value>>

Definition at line 1517 of file FIRParser.cpp.

◆ UnbundledValuesList

Definition at line 1518 of file FIRParser.cpp.