-
Notifications
You must be signed in to change notification settings - Fork 11.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NFC][MLIR][TableGen] Eliminate llvm::
for common types in LSP Server
#110867
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@llvm/pr-subscribers-mlir Author: Rahul Joshi (jurahul) ChangesFull diff: https://github.com/llvm/llvm-project/pull/110867.diff 1 Files Affected:
diff --git a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
index f7cf4de58a0e08..94db1798e1179b 100644
--- a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
+++ b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
@@ -22,6 +22,10 @@
#include <optional>
using namespace mlir;
+using llvm::Record;
+using llvm::RecordKeeper;
+using llvm::RecordVal;
+using llvm::SourceMgr;
/// Returns the range of a lexical token given a SMLoc corresponding to the
/// start of an token location. The range is computed heuristically, and
@@ -32,7 +36,7 @@ static SMRange convertTokenLocToRange(SMLoc loc) {
/// Returns a language server uri for the given source location. `mainFileURI`
/// corresponds to the uri for the main file of the source manager.
-static lsp::URIForFile getURIFromLoc(const llvm::SourceMgr &mgr, SMLoc loc,
+static lsp::URIForFile getURIFromLoc(const SourceMgr &mgr, SMLoc loc,
const lsp::URIForFile &mainFileURI) {
int bufferId = mgr.FindBufferContainingLoc(loc);
if (bufferId == 0 || bufferId == static_cast<int>(mgr.getMainFileID()))
@@ -47,12 +51,12 @@ static lsp::URIForFile getURIFromLoc(const llvm::SourceMgr &mgr, SMLoc loc,
}
/// Returns a language server location from the given source range.
-static lsp::Location getLocationFromLoc(llvm::SourceMgr &mgr, SMRange loc,
+static lsp::Location getLocationFromLoc(SourceMgr &mgr, SMRange loc,
const lsp::URIForFile &uri) {
return lsp::Location(getURIFromLoc(mgr, loc.Start, uri),
lsp::Range(mgr, loc));
}
-static lsp::Location getLocationFromLoc(llvm::SourceMgr &mgr, SMLoc loc,
+static lsp::Location getLocationFromLoc(SourceMgr &mgr, SMLoc loc,
const lsp::URIForFile &uri) {
return getLocationFromLoc(mgr, convertTokenLocToRange(loc), uri);
}
@@ -61,7 +65,7 @@ static lsp::Location getLocationFromLoc(llvm::SourceMgr &mgr, SMLoc loc,
static std::optional<lsp::Diagnostic>
getLspDiagnoticFromDiag(const llvm::SMDiagnostic &diag,
const lsp::URIForFile &uri) {
- auto *sourceMgr = const_cast<llvm::SourceMgr *>(diag.getSourceMgr());
+ auto *sourceMgr = const_cast<SourceMgr *>(diag.getSourceMgr());
if (!sourceMgr || !diag.getLoc().isValid())
return std::nullopt;
@@ -79,17 +83,17 @@ getLspDiagnoticFromDiag(const llvm::SMDiagnostic &diag,
// Convert the severity for the diagnostic.
switch (diag.getKind()) {
- case llvm::SourceMgr::DK_Warning:
+ case SourceMgr::DK_Warning:
lspDiag.severity = lsp::DiagnosticSeverity::Warning;
break;
- case llvm::SourceMgr::DK_Error:
+ case SourceMgr::DK_Error:
lspDiag.severity = lsp::DiagnosticSeverity::Error;
break;
- case llvm::SourceMgr::DK_Note:
+ case SourceMgr::DK_Note:
// Notes are emitted separately from the main diagnostic, so we just treat
// them as remarks given that we can't determine the diagnostic to relate
// them to.
- case llvm::SourceMgr::DK_Remark:
+ case SourceMgr::DK_Remark:
lspDiag.severity = lsp::DiagnosticSeverity::Information;
break;
}
@@ -100,16 +104,15 @@ getLspDiagnoticFromDiag(const llvm::SMDiagnostic &diag,
/// Get the base definition of the given record value, or nullptr if one
/// couldn't be found.
-static std::pair<const llvm::Record *, const llvm::RecordVal *>
-getBaseValue(const llvm::Record *record, const llvm::RecordVal *value) {
+static std::pair<const Record *, const RecordVal *>
+getBaseValue(const Record *record, const RecordVal *value) {
if (value->isTemplateArg())
return {nullptr, nullptr};
// Find a base value for the field in the super classes of the given record.
// On success, `record` is updated to the new parent record.
StringRef valueName = value->getName();
- auto findValueInSupers =
- [&](const llvm::Record *&record) -> llvm::RecordVal * {
+ auto findValueInSupers = [&](const Record *&record) -> RecordVal * {
for (auto [parentRecord, loc] : record->getSuperClasses()) {
if (auto *newBase = parentRecord->getValue(valueName)) {
record = parentRecord;
@@ -120,8 +123,8 @@ getBaseValue(const llvm::Record *record, const llvm::RecordVal *value) {
};
// Try to find the lowest definition of the record value.
- std::pair<const llvm::Record *, const llvm::RecordVal *> baseValue = {};
- while (const llvm::RecordVal *newBase = findValueInSupers(record))
+ std::pair<const Record *, const RecordVal *> baseValue = {};
+ while (const RecordVal *newBase = findValueInSupers(record))
baseValue = {record, newBase};
// Check that the base isn't the same as the current value (e.g. if the value
@@ -140,15 +143,15 @@ namespace {
/// contains the definition of the symbol, the location of the symbol, and any
/// recorded references.
struct TableGenIndexSymbol {
- TableGenIndexSymbol(const llvm::Record *record)
+ TableGenIndexSymbol(const Record *record)
: definition(record),
defLoc(convertTokenLocToRange(record->getLoc().front())) {}
- TableGenIndexSymbol(const llvm::RecordVal *value)
+ TableGenIndexSymbol(const RecordVal *value)
: definition(value), defLoc(convertTokenLocToRange(value->getLoc())) {}
virtual ~TableGenIndexSymbol() = default;
// The main definition of the symbol.
- PointerUnion<const llvm::Record *, const llvm::RecordVal *> definition;
+ PointerUnion<const Record *, const RecordVal *> definition;
/// The source location of the definition.
SMRange defLoc;
@@ -158,37 +161,33 @@ struct TableGenIndexSymbol {
};
/// This class represents a single record symbol.
struct TableGenRecordSymbol : public TableGenIndexSymbol {
- TableGenRecordSymbol(const llvm::Record *record)
- : TableGenIndexSymbol(record) {}
+ TableGenRecordSymbol(const Record *record) : TableGenIndexSymbol(record) {}
~TableGenRecordSymbol() override = default;
static bool classof(const TableGenIndexSymbol *symbol) {
- return symbol->definition.is<const llvm::Record *>();
+ return symbol->definition.is<const Record *>();
}
/// Return the value of this symbol.
- const llvm::Record *getValue() const {
- return definition.get<const llvm::Record *>();
- }
+ const Record *getValue() const { return definition.get<const Record *>(); }
};
/// This class represents a single record value symbol.
struct TableGenRecordValSymbol : public TableGenIndexSymbol {
- TableGenRecordValSymbol(const llvm::Record *record,
- const llvm::RecordVal *value)
+ TableGenRecordValSymbol(const Record *record, const RecordVal *value)
: TableGenIndexSymbol(value), record(record) {}
~TableGenRecordValSymbol() override = default;
static bool classof(const TableGenIndexSymbol *symbol) {
- return symbol->definition.is<const llvm::RecordVal *>();
+ return symbol->definition.is<const RecordVal *>();
}
/// Return the value of this symbol.
- const llvm::RecordVal *getValue() const {
- return definition.get<const llvm::RecordVal *>();
+ const RecordVal *getValue() const {
+ return definition.get<const RecordVal *>();
}
/// The parent record of this symbol.
- const llvm::Record *record;
+ const Record *record;
};
/// This class provides an index for definitions/uses within a TableGen
@@ -199,7 +198,7 @@ class TableGenIndex {
TableGenIndex() : intervalMap(allocator) {}
/// Initialize the index with the given RecordKeeper.
- void initialize(const llvm::RecordKeeper &records);
+ void initialize(const RecordKeeper &records);
/// Lookup a symbol for the given location. Returns nullptr if no symbol could
/// be found. If provided, `overlappedRange` is set to the range that the
@@ -217,15 +216,15 @@ class TableGenIndex {
llvm::IntervalMapHalfOpenInfo<const char *>>;
/// Get or insert a symbol for the given record.
- TableGenIndexSymbol *getOrInsertDef(const llvm::Record *record) {
+ TableGenIndexSymbol *getOrInsertDef(const Record *record) {
auto it = defToSymbol.try_emplace(record, nullptr);
if (it.second)
it.first->second = std::make_unique<TableGenRecordSymbol>(record);
return &*it.first->second;
}
/// Get or insert a symbol for the given record value.
- TableGenIndexSymbol *getOrInsertDef(const llvm::Record *record,
- const llvm::RecordVal *value) {
+ TableGenIndexSymbol *getOrInsertDef(const Record *record,
+ const RecordVal *value) {
auto it = defToSymbol.try_emplace(value, nullptr);
if (it.second) {
it.first->second =
@@ -246,7 +245,7 @@ class TableGenIndex {
};
} // namespace
-void TableGenIndex::initialize(const llvm::RecordKeeper &records) {
+void TableGenIndex::initialize(const RecordKeeper &records) {
intervalMap.clear();
defToSymbol.clear();
@@ -282,7 +281,7 @@ void TableGenIndex::initialize(const llvm::RecordKeeper &records) {
llvm::make_pointee_range(llvm::make_second_range(records.getClasses()));
auto defs =
llvm::make_pointee_range(llvm::make_second_range(records.getDefs()));
- for (const llvm::Record &def : llvm::concat<llvm::Record>(classes, defs)) {
+ for (const Record &def : llvm::concat<Record>(classes, defs)) {
auto *sym = getOrInsertDef(&def);
insertRef(sym, sym->defLoc, /*isDef=*/true);
@@ -293,7 +292,7 @@ void TableGenIndex::initialize(const llvm::RecordKeeper &records) {
insertRef(sym, loc);
// Add definitions for any values.
- for (const llvm::RecordVal &value : def.getValues()) {
+ for (const RecordVal &value : def.getValues()) {
auto *sym = getOrInsertDef(&def, &value);
insertRef(sym, sym->defLoc, /*isDef=*/true);
for (SMRange refLoc : value.getReferenceLocs())
@@ -359,13 +358,12 @@ class TableGenTextFile {
std::optional<lsp::Hover> findHover(const lsp::URIForFile &uri,
const lsp::Position &hoverPos);
- lsp::Hover buildHoverForRecord(const llvm::Record *record,
+ lsp::Hover buildHoverForRecord(const Record *record,
const SMRange &hoverRange);
- lsp::Hover buildHoverForTemplateArg(const llvm::Record *record,
- const llvm::RecordVal *value,
+ lsp::Hover buildHoverForTemplateArg(const Record *record,
+ const RecordVal *value,
const SMRange &hoverRange);
- lsp::Hover buildHoverForField(const llvm::Record *record,
- const llvm::RecordVal *value,
+ lsp::Hover buildHoverForField(const Record *record, const RecordVal *value,
const SMRange &hoverRange);
private:
@@ -383,10 +381,10 @@ class TableGenTextFile {
std::vector<std::string> includeDirs;
/// The source manager containing the contents of the input file.
- llvm::SourceMgr sourceMgr;
+ SourceMgr sourceMgr;
/// The record keeper containing the parsed tablegen constructs.
- std::unique_ptr<llvm::RecordKeeper> recordKeeper;
+ std::unique_ptr<RecordKeeper> recordKeeper;
/// The index of the parsed file.
TableGenIndex index;
@@ -430,8 +428,8 @@ void TableGenTextFile::initialize(const lsp::URIForFile &uri,
int64_t newVersion,
std::vector<lsp::Diagnostic> &diagnostics) {
version = newVersion;
- sourceMgr = llvm::SourceMgr();
- recordKeeper = std::make_unique<llvm::RecordKeeper>();
+ sourceMgr = SourceMgr();
+ recordKeeper = std::make_unique<RecordKeeper>();
// Build a buffer for this file.
auto memBuffer = llvm::MemoryBuffer::getMemBuffer(contents, uri.file());
@@ -442,7 +440,7 @@ void TableGenTextFile::initialize(const lsp::URIForFile &uri,
sourceMgr.setIncludeDirs(includeDirs);
sourceMgr.AddNewSourceBuffer(std::move(memBuffer), SMLoc());
- // This class provides a context argument for the llvm::SourceMgr diagnostic
+ // This class provides a context argument for the SourceMgr diagnostic
// handler.
struct DiagHandlerContext {
std::vector<lsp::Diagnostic> &diagnostics;
@@ -543,13 +541,13 @@ TableGenTextFile::findHover(const lsp::URIForFile &uri,
// Build hover for a RecordVal, which is either a template argument or a
// field.
auto *recordVal = cast<TableGenRecordValSymbol>(symbol);
- const llvm::RecordVal *value = recordVal->getValue();
+ const RecordVal *value = recordVal->getValue();
if (value->isTemplateArg())
return buildHoverForTemplateArg(recordVal->record, value, hoverRange);
return buildHoverForField(recordVal->record, value, hoverRange);
}
-lsp::Hover TableGenTextFile::buildHoverForRecord(const llvm::Record *record,
+lsp::Hover TableGenTextFile::buildHoverForRecord(const Record *record,
const SMRange &hoverRange) {
lsp::Hover hover(lsp::Range(sourceMgr, hoverRange));
{
@@ -570,7 +568,7 @@ lsp::Hover TableGenTextFile::buildHoverForRecord(const llvm::Record *record,
auto printAndFormatField = [&](StringRef fieldName) {
// Check that the record actually has the given field, and that it's a
// string.
- const llvm::RecordVal *value = record->getValue(fieldName);
+ const RecordVal *value = record->getValue(fieldName);
if (!value || !value->getValue())
return;
auto *stringValue = dyn_cast<llvm::StringInit>(value->getValue());
@@ -593,10 +591,8 @@ lsp::Hover TableGenTextFile::buildHoverForRecord(const llvm::Record *record,
return hover;
}
-lsp::Hover
-TableGenTextFile::buildHoverForTemplateArg(const llvm::Record *record,
- const llvm::RecordVal *value,
- const SMRange &hoverRange) {
+lsp::Hover TableGenTextFile::buildHoverForTemplateArg(
+ const Record *record, const RecordVal *value, const SMRange &hoverRange) {
lsp::Hover hover(lsp::Range(sourceMgr, hoverRange));
{
llvm::raw_string_ostream hoverOS(hover.contents.value);
@@ -609,8 +605,8 @@ TableGenTextFile::buildHoverForTemplateArg(const llvm::Record *record,
return hover;
}
-lsp::Hover TableGenTextFile::buildHoverForField(const llvm::Record *record,
- const llvm::RecordVal *value,
+lsp::Hover TableGenTextFile::buildHoverForField(const Record *record,
+ const RecordVal *value,
const SMRange &hoverRange) {
lsp::Hover hover(lsp::Range(sourceMgr, hoverRange));
{
|
@llvm/pr-subscribers-mlir-core Author: Rahul Joshi (jurahul) ChangesFull diff: https://github.com/llvm/llvm-project/pull/110867.diff 1 Files Affected:
diff --git a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
index f7cf4de58a0e08..94db1798e1179b 100644
--- a/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
+++ b/mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
@@ -22,6 +22,10 @@
#include <optional>
using namespace mlir;
+using llvm::Record;
+using llvm::RecordKeeper;
+using llvm::RecordVal;
+using llvm::SourceMgr;
/// Returns the range of a lexical token given a SMLoc corresponding to the
/// start of an token location. The range is computed heuristically, and
@@ -32,7 +36,7 @@ static SMRange convertTokenLocToRange(SMLoc loc) {
/// Returns a language server uri for the given source location. `mainFileURI`
/// corresponds to the uri for the main file of the source manager.
-static lsp::URIForFile getURIFromLoc(const llvm::SourceMgr &mgr, SMLoc loc,
+static lsp::URIForFile getURIFromLoc(const SourceMgr &mgr, SMLoc loc,
const lsp::URIForFile &mainFileURI) {
int bufferId = mgr.FindBufferContainingLoc(loc);
if (bufferId == 0 || bufferId == static_cast<int>(mgr.getMainFileID()))
@@ -47,12 +51,12 @@ static lsp::URIForFile getURIFromLoc(const llvm::SourceMgr &mgr, SMLoc loc,
}
/// Returns a language server location from the given source range.
-static lsp::Location getLocationFromLoc(llvm::SourceMgr &mgr, SMRange loc,
+static lsp::Location getLocationFromLoc(SourceMgr &mgr, SMRange loc,
const lsp::URIForFile &uri) {
return lsp::Location(getURIFromLoc(mgr, loc.Start, uri),
lsp::Range(mgr, loc));
}
-static lsp::Location getLocationFromLoc(llvm::SourceMgr &mgr, SMLoc loc,
+static lsp::Location getLocationFromLoc(SourceMgr &mgr, SMLoc loc,
const lsp::URIForFile &uri) {
return getLocationFromLoc(mgr, convertTokenLocToRange(loc), uri);
}
@@ -61,7 +65,7 @@ static lsp::Location getLocationFromLoc(llvm::SourceMgr &mgr, SMLoc loc,
static std::optional<lsp::Diagnostic>
getLspDiagnoticFromDiag(const llvm::SMDiagnostic &diag,
const lsp::URIForFile &uri) {
- auto *sourceMgr = const_cast<llvm::SourceMgr *>(diag.getSourceMgr());
+ auto *sourceMgr = const_cast<SourceMgr *>(diag.getSourceMgr());
if (!sourceMgr || !diag.getLoc().isValid())
return std::nullopt;
@@ -79,17 +83,17 @@ getLspDiagnoticFromDiag(const llvm::SMDiagnostic &diag,
// Convert the severity for the diagnostic.
switch (diag.getKind()) {
- case llvm::SourceMgr::DK_Warning:
+ case SourceMgr::DK_Warning:
lspDiag.severity = lsp::DiagnosticSeverity::Warning;
break;
- case llvm::SourceMgr::DK_Error:
+ case SourceMgr::DK_Error:
lspDiag.severity = lsp::DiagnosticSeverity::Error;
break;
- case llvm::SourceMgr::DK_Note:
+ case SourceMgr::DK_Note:
// Notes are emitted separately from the main diagnostic, so we just treat
// them as remarks given that we can't determine the diagnostic to relate
// them to.
- case llvm::SourceMgr::DK_Remark:
+ case SourceMgr::DK_Remark:
lspDiag.severity = lsp::DiagnosticSeverity::Information;
break;
}
@@ -100,16 +104,15 @@ getLspDiagnoticFromDiag(const llvm::SMDiagnostic &diag,
/// Get the base definition of the given record value, or nullptr if one
/// couldn't be found.
-static std::pair<const llvm::Record *, const llvm::RecordVal *>
-getBaseValue(const llvm::Record *record, const llvm::RecordVal *value) {
+static std::pair<const Record *, const RecordVal *>
+getBaseValue(const Record *record, const RecordVal *value) {
if (value->isTemplateArg())
return {nullptr, nullptr};
// Find a base value for the field in the super classes of the given record.
// On success, `record` is updated to the new parent record.
StringRef valueName = value->getName();
- auto findValueInSupers =
- [&](const llvm::Record *&record) -> llvm::RecordVal * {
+ auto findValueInSupers = [&](const Record *&record) -> RecordVal * {
for (auto [parentRecord, loc] : record->getSuperClasses()) {
if (auto *newBase = parentRecord->getValue(valueName)) {
record = parentRecord;
@@ -120,8 +123,8 @@ getBaseValue(const llvm::Record *record, const llvm::RecordVal *value) {
};
// Try to find the lowest definition of the record value.
- std::pair<const llvm::Record *, const llvm::RecordVal *> baseValue = {};
- while (const llvm::RecordVal *newBase = findValueInSupers(record))
+ std::pair<const Record *, const RecordVal *> baseValue = {};
+ while (const RecordVal *newBase = findValueInSupers(record))
baseValue = {record, newBase};
// Check that the base isn't the same as the current value (e.g. if the value
@@ -140,15 +143,15 @@ namespace {
/// contains the definition of the symbol, the location of the symbol, and any
/// recorded references.
struct TableGenIndexSymbol {
- TableGenIndexSymbol(const llvm::Record *record)
+ TableGenIndexSymbol(const Record *record)
: definition(record),
defLoc(convertTokenLocToRange(record->getLoc().front())) {}
- TableGenIndexSymbol(const llvm::RecordVal *value)
+ TableGenIndexSymbol(const RecordVal *value)
: definition(value), defLoc(convertTokenLocToRange(value->getLoc())) {}
virtual ~TableGenIndexSymbol() = default;
// The main definition of the symbol.
- PointerUnion<const llvm::Record *, const llvm::RecordVal *> definition;
+ PointerUnion<const Record *, const RecordVal *> definition;
/// The source location of the definition.
SMRange defLoc;
@@ -158,37 +161,33 @@ struct TableGenIndexSymbol {
};
/// This class represents a single record symbol.
struct TableGenRecordSymbol : public TableGenIndexSymbol {
- TableGenRecordSymbol(const llvm::Record *record)
- : TableGenIndexSymbol(record) {}
+ TableGenRecordSymbol(const Record *record) : TableGenIndexSymbol(record) {}
~TableGenRecordSymbol() override = default;
static bool classof(const TableGenIndexSymbol *symbol) {
- return symbol->definition.is<const llvm::Record *>();
+ return symbol->definition.is<const Record *>();
}
/// Return the value of this symbol.
- const llvm::Record *getValue() const {
- return definition.get<const llvm::Record *>();
- }
+ const Record *getValue() const { return definition.get<const Record *>(); }
};
/// This class represents a single record value symbol.
struct TableGenRecordValSymbol : public TableGenIndexSymbol {
- TableGenRecordValSymbol(const llvm::Record *record,
- const llvm::RecordVal *value)
+ TableGenRecordValSymbol(const Record *record, const RecordVal *value)
: TableGenIndexSymbol(value), record(record) {}
~TableGenRecordValSymbol() override = default;
static bool classof(const TableGenIndexSymbol *symbol) {
- return symbol->definition.is<const llvm::RecordVal *>();
+ return symbol->definition.is<const RecordVal *>();
}
/// Return the value of this symbol.
- const llvm::RecordVal *getValue() const {
- return definition.get<const llvm::RecordVal *>();
+ const RecordVal *getValue() const {
+ return definition.get<const RecordVal *>();
}
/// The parent record of this symbol.
- const llvm::Record *record;
+ const Record *record;
};
/// This class provides an index for definitions/uses within a TableGen
@@ -199,7 +198,7 @@ class TableGenIndex {
TableGenIndex() : intervalMap(allocator) {}
/// Initialize the index with the given RecordKeeper.
- void initialize(const llvm::RecordKeeper &records);
+ void initialize(const RecordKeeper &records);
/// Lookup a symbol for the given location. Returns nullptr if no symbol could
/// be found. If provided, `overlappedRange` is set to the range that the
@@ -217,15 +216,15 @@ class TableGenIndex {
llvm::IntervalMapHalfOpenInfo<const char *>>;
/// Get or insert a symbol for the given record.
- TableGenIndexSymbol *getOrInsertDef(const llvm::Record *record) {
+ TableGenIndexSymbol *getOrInsertDef(const Record *record) {
auto it = defToSymbol.try_emplace(record, nullptr);
if (it.second)
it.first->second = std::make_unique<TableGenRecordSymbol>(record);
return &*it.first->second;
}
/// Get or insert a symbol for the given record value.
- TableGenIndexSymbol *getOrInsertDef(const llvm::Record *record,
- const llvm::RecordVal *value) {
+ TableGenIndexSymbol *getOrInsertDef(const Record *record,
+ const RecordVal *value) {
auto it = defToSymbol.try_emplace(value, nullptr);
if (it.second) {
it.first->second =
@@ -246,7 +245,7 @@ class TableGenIndex {
};
} // namespace
-void TableGenIndex::initialize(const llvm::RecordKeeper &records) {
+void TableGenIndex::initialize(const RecordKeeper &records) {
intervalMap.clear();
defToSymbol.clear();
@@ -282,7 +281,7 @@ void TableGenIndex::initialize(const llvm::RecordKeeper &records) {
llvm::make_pointee_range(llvm::make_second_range(records.getClasses()));
auto defs =
llvm::make_pointee_range(llvm::make_second_range(records.getDefs()));
- for (const llvm::Record &def : llvm::concat<llvm::Record>(classes, defs)) {
+ for (const Record &def : llvm::concat<Record>(classes, defs)) {
auto *sym = getOrInsertDef(&def);
insertRef(sym, sym->defLoc, /*isDef=*/true);
@@ -293,7 +292,7 @@ void TableGenIndex::initialize(const llvm::RecordKeeper &records) {
insertRef(sym, loc);
// Add definitions for any values.
- for (const llvm::RecordVal &value : def.getValues()) {
+ for (const RecordVal &value : def.getValues()) {
auto *sym = getOrInsertDef(&def, &value);
insertRef(sym, sym->defLoc, /*isDef=*/true);
for (SMRange refLoc : value.getReferenceLocs())
@@ -359,13 +358,12 @@ class TableGenTextFile {
std::optional<lsp::Hover> findHover(const lsp::URIForFile &uri,
const lsp::Position &hoverPos);
- lsp::Hover buildHoverForRecord(const llvm::Record *record,
+ lsp::Hover buildHoverForRecord(const Record *record,
const SMRange &hoverRange);
- lsp::Hover buildHoverForTemplateArg(const llvm::Record *record,
- const llvm::RecordVal *value,
+ lsp::Hover buildHoverForTemplateArg(const Record *record,
+ const RecordVal *value,
const SMRange &hoverRange);
- lsp::Hover buildHoverForField(const llvm::Record *record,
- const llvm::RecordVal *value,
+ lsp::Hover buildHoverForField(const Record *record, const RecordVal *value,
const SMRange &hoverRange);
private:
@@ -383,10 +381,10 @@ class TableGenTextFile {
std::vector<std::string> includeDirs;
/// The source manager containing the contents of the input file.
- llvm::SourceMgr sourceMgr;
+ SourceMgr sourceMgr;
/// The record keeper containing the parsed tablegen constructs.
- std::unique_ptr<llvm::RecordKeeper> recordKeeper;
+ std::unique_ptr<RecordKeeper> recordKeeper;
/// The index of the parsed file.
TableGenIndex index;
@@ -430,8 +428,8 @@ void TableGenTextFile::initialize(const lsp::URIForFile &uri,
int64_t newVersion,
std::vector<lsp::Diagnostic> &diagnostics) {
version = newVersion;
- sourceMgr = llvm::SourceMgr();
- recordKeeper = std::make_unique<llvm::RecordKeeper>();
+ sourceMgr = SourceMgr();
+ recordKeeper = std::make_unique<RecordKeeper>();
// Build a buffer for this file.
auto memBuffer = llvm::MemoryBuffer::getMemBuffer(contents, uri.file());
@@ -442,7 +440,7 @@ void TableGenTextFile::initialize(const lsp::URIForFile &uri,
sourceMgr.setIncludeDirs(includeDirs);
sourceMgr.AddNewSourceBuffer(std::move(memBuffer), SMLoc());
- // This class provides a context argument for the llvm::SourceMgr diagnostic
+ // This class provides a context argument for the SourceMgr diagnostic
// handler.
struct DiagHandlerContext {
std::vector<lsp::Diagnostic> &diagnostics;
@@ -543,13 +541,13 @@ TableGenTextFile::findHover(const lsp::URIForFile &uri,
// Build hover for a RecordVal, which is either a template argument or a
// field.
auto *recordVal = cast<TableGenRecordValSymbol>(symbol);
- const llvm::RecordVal *value = recordVal->getValue();
+ const RecordVal *value = recordVal->getValue();
if (value->isTemplateArg())
return buildHoverForTemplateArg(recordVal->record, value, hoverRange);
return buildHoverForField(recordVal->record, value, hoverRange);
}
-lsp::Hover TableGenTextFile::buildHoverForRecord(const llvm::Record *record,
+lsp::Hover TableGenTextFile::buildHoverForRecord(const Record *record,
const SMRange &hoverRange) {
lsp::Hover hover(lsp::Range(sourceMgr, hoverRange));
{
@@ -570,7 +568,7 @@ lsp::Hover TableGenTextFile::buildHoverForRecord(const llvm::Record *record,
auto printAndFormatField = [&](StringRef fieldName) {
// Check that the record actually has the given field, and that it's a
// string.
- const llvm::RecordVal *value = record->getValue(fieldName);
+ const RecordVal *value = record->getValue(fieldName);
if (!value || !value->getValue())
return;
auto *stringValue = dyn_cast<llvm::StringInit>(value->getValue());
@@ -593,10 +591,8 @@ lsp::Hover TableGenTextFile::buildHoverForRecord(const llvm::Record *record,
return hover;
}
-lsp::Hover
-TableGenTextFile::buildHoverForTemplateArg(const llvm::Record *record,
- const llvm::RecordVal *value,
- const SMRange &hoverRange) {
+lsp::Hover TableGenTextFile::buildHoverForTemplateArg(
+ const Record *record, const RecordVal *value, const SMRange &hoverRange) {
lsp::Hover hover(lsp::Range(sourceMgr, hoverRange));
{
llvm::raw_string_ostream hoverOS(hover.contents.value);
@@ -609,8 +605,8 @@ TableGenTextFile::buildHoverForTemplateArg(const llvm::Record *record,
return hover;
}
-lsp::Hover TableGenTextFile::buildHoverForField(const llvm::Record *record,
- const llvm::RecordVal *value,
+lsp::Hover TableGenTextFile::buildHoverForField(const Record *record,
+ const RecordVal *value,
const SMRange &hoverRange) {
lsp::Hover hover(lsp::Range(sourceMgr, hoverRange));
{
|
River707
approved these changes
Oct 2, 2024
EricWF
pushed a commit
to efcs/llvm-project
that referenced
this pull request
Oct 2, 2024
Sterling-Augustine
pushed a commit
to Sterling-Augustine/llvm-project
that referenced
this pull request
Oct 3, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.