LLVM  7.0.0svn
Classes | Namespaces | Functions
TGParser.cpp File Reference
#include "TGParser.h"
#include "llvm/ADT/None.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TableGen/Record.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
Include dependency graph for TGParser.cpp:

Go to the source code of this file.

Classes

struct  llvm::SubClassReference
 
struct  llvm::SubMultiClassReference
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

static bool checkBitsConcrete (Record &R, const RecordVal &RV)
 
static void checkConcrete (Record &R)
 
static InitQualifyName (Record &CurRec, MultiClass *CurMultiClass, Init *Name, StringRef Scoper)
 Return an Init with a qualifier prefix referring to CurRec's name. More...
 
static InitQualifiedNameOfImplicitName (Record &Rec, MultiClass *MC=nullptr)
 Return the qualified version of the implicit 'NAME' template argument. More...
 
static InitQualifiedNameOfImplicitName (MultiClass *MC)
 
static bool isObjectStart (tgtok::TokKind K)
 isObjectStart - Return true if this is a valid first token for an Object. More...
 

Function Documentation

◆ checkBitsConcrete()

static bool checkBitsConcrete ( Record R,
const RecordVal RV 
)
static

◆ checkConcrete()

static void checkConcrete ( Record R)
static

◆ isObjectStart()

static bool isObjectStart ( tgtok::TokKind  K)
static

isObjectStart - Return true if this is a valid first token for an Object.

Definition at line 483 of file TGParser.cpp.

References llvm::BinOpInit::ADD, llvm::Record::addTemplateArg(), llvm::Record::addValue(), llvm::BinOpInit::AND, llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), B, llvm::SmallVectorTemplateCommon< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::tgtok::BinaryIntVal, llvm::tgtok::Bit, llvm::tgtok::Bits, llvm::UnOpInit::CAST, llvm::tgtok::Class, llvm::SmallVectorImpl< T >::clear(), llvm::tgtok::Code, llvm::tgtok::CodeFragment, llvm::tgtok::colon, llvm::tgtok::comma, llvm::BinOpInit::CONCAT, llvm::Init::convertInitializerBitRange(), llvm::Init::convertInitListSlice(), llvm::tgtok::Dag, llvm::TernOpInit::DAG, llvm::tgtok::Def, llvm::Default, llvm::tgtok::Defm, llvm::tgtok::Defset, llvm::RecordsEntry::dump(), llvm::ForeachLoop::dump(), llvm::MultiClass::dump(), llvm::Record::dump(), llvm::dyn_cast(), llvm::DefsetRecord::Elements, llvm::DefsetRecord::EltTy, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase::empty(), llvm::ArrayRef< T >::empty(), llvm::ListInit::empty(), llvm::UnOpInit::EMPTY, llvm::SMRange::End, llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::WebAssembly::End, llvm::MultiClass::Entries, llvm::tgtok::Eof, llvm::BinOpInit::EQ, llvm::tgtok::equal, llvm::Error, llvm::errs(), llvm::tgtok::Field, llvm::UnOpInit::Fold(), llvm::VarDefInit::Fold(), llvm::FieldInit::Fold(), llvm::tgtok::Foreach, llvm::TernOpInit::FOREACH, llvm::HasReferenceResolver::found(), llvm::BinOpInit::GE, llvm::BitRecTy::get(), llvm::BitsRecTy::get(), llvm::CodeRecTy::get(), llvm::IntRecTy::get(), llvm::StringRecTy::get(), llvm::ListRecTy::get(), llvm::DagRecTy::get(), llvm::RecordRecTy::get(), llvm::UnsetInit::get(), llvm::BitInit::get(), llvm::BitsInit::get(), llvm::IntInit::get(), llvm::StringInit::get(), llvm::CodeInit::get(), llvm::ListInit::get(), llvm::UnOpInit::get(), llvm::BinOpInit::get(), llvm::TernOpInit::get(), llvm::FoldOpInit::get(), llvm::IsAOpInit::get(), llvm::VarInit::get(), llvm::VarDefInit::get(), llvm::FieldInit::get(), llvm::DagInit::get(), llvm::RecTy::getAsString(), llvm::Init::getAsString(), llvm::ListInit::getElement(), llvm::ListRecTy::getElementType(), llvm::Init::getFieldType(), llvm::RecTy::getListTy(), llvm::Record::getName(), llvm::VarInit::getNameInit(), llvm::Record::getNameInit(), llvm::RecordVal::getNameInitAsString(), llvm::Record::getNameInitAsString(), llvm::BinOpInit::getStrConcat(), llvm::Record::getSuperClasses(), llvm::Record::getTemplateArgs(), llvm::TypedInit::getType(), llvm::RecordVal::getType(), llvm::Record::getType(), llvm::StringInit::getValue(), llvm::RecordVal::getValue(), llvm::Record::getValue(), llvm::Record::getValues(), llvm::tgtok::greater, llvm::BinOpInit::GT, llvm::UnOpInit::HEAD, I, llvm::tgtok::Id, llvm::TernOpInit::IF, llvm::tgtok::In, llvm::SmallVectorImpl< T >::insert(), llvm::tgtok::Int, llvm::tgtok::IntVal, llvm::Record::isClass(), llvm::Init::isComplete(), llvm::Record::isTemplateArg(), llvm::tgtok::l_brace, llvm::tgtok::l_paren, llvm::tgtok::l_square, llvm::BinOpInit::LE, llvm::tgtok::less, llvm::tgtok::Let, llvm::tgtok::List, List, llvm::BinOpInit::LISTCONCAT, LLVM_DUMP_METHOD, llvm_unreachable, llvm::DefsetRecord::Loc, llvm::RecordsEntry::Loop, Loops, llvm::BinOpInit::LT, llvm::SubMultiClassReference::MC, llvm::tgtok::minus, Mode, llvm::tgtok::MultiClass, llvm::BinOpInit::NE, llvm::None, llvm::BinOpInit::OR, llvm::TGParser::ParseFile(), llvm::tgtok::paste, llvm::tgtok::period, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::PrintNote(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), QualifiedNameOfImplicitName(), QualifyName(), llvm::tgtok::question, llvm::tgtok::r_brace, llvm::tgtok::r_paren, llvm::tgtok::r_square, llvm::SubClassReference::Rec, llvm::RecordsEntry::Rec, llvm::MultiClass::Rec, llvm::Ref, llvm::SubClassReference::RefRange, llvm::SubMultiClassReference::RefRange, llvm::Record::removeValue(), llvm::Init::resolveReferences(), llvm::resolveTypes(), llvm::reverse(), llvm::tgtok::semi, SetValue(), llvm::BinOpInit::SHL, llvm::SmallVectorTemplateCommon< T >::size(), llvm::ArrayRef< T >::size(), llvm::UnOpInit::SIZE, llvm::BinOpInit::SRA, llvm::BinOpInit::SRL, llvm::SMRange::Start, llvm::BinOpInit::STRCONCAT, llvm::tgtok::String, llvm::tgtok::StrVal, llvm::TernOpInit::SUBST, llvm::UnOpInit::TAIL, llvm::SubClassReference::TemplateArgs, llvm::SubMultiClassReference::TemplateArgs, llvm::RecTy::typeIsConvertibleTo(), llvm::tgtok::VarName, VI, llvm::tgtok::XADD, llvm::tgtok::XAND, llvm::tgtok::XCast, llvm::tgtok::XConcat, llvm::tgtok::XDag, llvm::tgtok::XEmpty, llvm::tgtok::XEq, llvm::tgtok::XFoldl, llvm::tgtok::XForEach, llvm::tgtok::XGe, llvm::tgtok::XGt, llvm::tgtok::XHead, llvm::tgtok::XIf, llvm::tgtok::XIsA, llvm::tgtok::XLe, llvm::tgtok::XListConcat, llvm::tgtok::XLt, llvm::tgtok::XNe, llvm::tgtok::XOR, llvm::tgtok::XSHL, llvm::tgtok::XSize, llvm::tgtok::XSRA, llvm::tgtok::XSRL, llvm::tgtok::XStrConcat, llvm::tgtok::XSubst, and llvm::tgtok::XTail.

◆ QualifiedNameOfImplicitName() [1/2]

static Init* QualifiedNameOfImplicitName ( Record Rec,
MultiClass MC = nullptr 
)
static

Return the qualified version of the implicit 'NAME' template argument.

Definition at line 132 of file TGParser.cpp.

References llvm::StringInit::get(), and QualifyName().

Referenced by isObjectStart(), and QualifiedNameOfImplicitName().

◆ QualifiedNameOfImplicitName() [2/2]

static Init* QualifiedNameOfImplicitName ( MultiClass MC)
static

Definition at line 137 of file TGParser.cpp.

References llvm::Record::addSuperClass(), llvm::Record::addValue(), llvm::Record::appendLoc(), assert(), llvm::tgtok::Bit, checkConcrete(), llvm::Default, llvm::tgtok::Defset, llvm::dyn_cast(), E, llvm::ArrayRef< T >::empty(), llvm::ForeachLoop::Entries, llvm::MultiClass::Entries, llvm::Error, llvm::BitsRecTy::get(), llvm::StringRecTy::get(), llvm::BitsInit::get(), llvm::VarInit::get(), llvm::RecTy::getAsString(), llvm::Init::getAsString(), llvm::Init::getAsUnquotedString(), llvm::BitsInit::getBit(), llvm::Init::getCastTo(), llvm::RecordVal::getName(), llvm::Record::getName(), llvm::VarInit::getNameInit(), llvm::RecordVal::getNameInit(), llvm::Record::getNameInit(), llvm::Record::getNameInitAsString(), llvm::BitsInit::getNumBits(), llvm::Record::getSuperClasses(), llvm::Record::getTemplateArgs(), llvm::TypedInit::getType(), llvm::RecordVal::getType(), llvm::RecordVal::getValue(), llvm::Record::getValue(), llvm::Record::getValues(), I, llvm::Record::isClass(), llvm::Init::isComplete(), llvm::Record::isSubClassOf(), llvm::ForeachLoop::IterVar, List, llvm::ForeachLoop::ListValue, llvm::ForeachLoop::Loc, llvm::RecordsEntry::Loop, Loops, llvm::SubMultiClassReference::MC, llvm::None, llvm::PrintError(), llvm::PrintNote(), QualifiedNameOfImplicitName(), llvm::SubClassReference::Rec, llvm::RecordsEntry::Rec, llvm::MultiClass::Rec, llvm::SubClassReference::RefRange, llvm::SubMultiClassReference::RefRange, llvm::Record::removeValue(), llvm::Init::resolveReferences(), llvm::Record::resolveReferences(), llvm::PPCISD::SC, llvm::MapResolver::set(), SetValue(), llvm::RecordVal::setValue(), llvm::ArrayRef< T >::size(), llvm::Sched::Source, llvm::SMRange::Start, llvm::SubClassReference::TemplateArgs, llvm::SubMultiClassReference::TemplateArgs, llvm::RecTy::typeIsA(), and VI.

◆ QualifyName()

static Init* QualifyName ( Record CurRec,
MultiClass CurMultiClass,
Init Name,
StringRef  Scoper 
)
static

Return an Init with a qualifier prefix referring to CurRec's name.

Definition at line 115 of file TGParser.cpp.

References llvm::StringInit::get(), llvm::Record::getNameInit(), llvm::BinOpInit::getStrConcat(), llvm::cl::Prefix, and llvm::MultiClass::Rec.

Referenced by isObjectStart(), and QualifiedNameOfImplicitName().