[flang] Add fir-lsp-server (#114059)

This patch adds a fir-lsp-server tool for editor support for editing fir
files, using the existing MLIR lsp server support.

See https://mlir.llvm.org/docs/Tools/MLIRLSP/ for more information.
This commit is contained in:
David Truby 2024-10-30 15:05:18 +00:00 committed by GitHub
parent 95c2d79814
commit dda20ea73d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 27 additions and 0 deletions

View File

@ -12,3 +12,4 @@ add_subdirectory(flang-driver)
add_subdirectory(tco)
add_subdirectory(f18-parse-demo)
add_subdirectory(fir-opt)
add_subdirectory(fir-lsp-server)

View File

@ -0,0 +1,17 @@
set(LLVM_LINK_COMPONENTS
Core
Support
AsmParser
)
add_flang_tool(fir-lsp-server fir-lsp-server.cpp)
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
target_link_libraries(fir-lsp-server PRIVATE
CUFDialect
FIRDialect
HLFIRDialect
MLIRLspServerLib
${dialect_libs}
${extension_libs})

View File

@ -0,0 +1,9 @@
#include "mlir/Tools/mlir-lsp-server/MlirLspServerMain.h"
#include "flang/Optimizer/Support/InitFIR.h"
int main(int argc, char **argv) {
mlir::DialectRegistry registry;
fir::support::registerNonCodegenDialects(registry);
fir::support::addFIRExtensions(registry);
return mlir::failed(mlir::MlirLspServerMain(argc, argv, registry));
}