[llvm] [CMake] Declare all parts of *GenRegisterInfo.inc as outputs. (PR #168405)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 17 09:10:23 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-tablegen
Author: Ivan Kosarev (kosarev)
<details>
<summary>Changes</summary>
This tells the build system to check and regenerate the
*GenRegisterInfo*.inc files, should any of them be missing for
whatever reason.
A follow-up from
<https://github.com/llvm/llvm-project/pull/167700>.
---
Full diff: https://github.com/llvm/llvm-project/pull/168405.diff
2 Files Affected:
- (modified) llvm/cmake/modules/TableGen.cmake (+11-1)
- (modified) llvm/utils/TableGen/RegisterInfoEmitter.cpp (+2)
``````````diff
diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
index 9a2e73a1e3718..706ae03115814 100644
--- a/llvm/cmake/modules/TableGen.cmake
+++ b/llvm/cmake/modules/TableGen.cmake
@@ -66,6 +66,16 @@ function(tablegen project ofn)
list(APPEND LLVM_TABLEGEN_FLAGS "-omit-comments")
endif()
+ set(EXTRA_OUTPUTS)
+ if("-gen-register-info" IN_LIST ARGN)
+ string(REGEX REPLACE "\\.[^.]*$" "" OUTPUT_BASENAME ${ofn})
+ list(APPEND EXTRA_OUTPUTS
+ ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_BASENAME}Enums.inc
+ ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_BASENAME}Header.inc
+ ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_BASENAME}MCDesc.inc
+ ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_BASENAME}TargetDesc.inc)
+ endif()
+
# MSVC can't support long string literals ("long" > 65534 bytes)[1], so if there's
# a possibility of generated tables being consumed by MSVC, generate arrays of
# char literals, instead. If we're cross-compiling, then conservatively assume
@@ -126,7 +136,7 @@ function(tablegen project ofn)
set(LLVM_TABLEGEN_JOB_POOL "")
endif()
- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn} ${EXTRA_OUTPUTS}
COMMAND ${tablegen_exe} ${ARG_UNPARSED_ARGUMENTS}
${tblgen_includes}
${LLVM_TABLEGEN_FLAGS}
diff --git a/llvm/utils/TableGen/RegisterInfoEmitter.cpp b/llvm/utils/TableGen/RegisterInfoEmitter.cpp
index ef7b13e8940f8..3486a7a7fb08c 100644
--- a/llvm/utils/TableGen/RegisterInfoEmitter.cpp
+++ b/llvm/utils/TableGen/RegisterInfoEmitter.cpp
@@ -1878,6 +1878,8 @@ TableGenOutputFiles RegisterInfoEmitter::run(StringRef FilenamePrefix) {
if (RegisterInfoDebug)
debugDump(errs());
+ // The suffixes should be in sync with the tablegen function in
+ // llvm/cmake/modules/TableGen.cmake.
return {Main,
{{"Enums.inc", Enums},
{"MCDesc.inc", MCDesc},
``````````
</details>
https://github.com/llvm/llvm-project/pull/168405
More information about the llvm-commits
mailing list