[llvm] 06b6161 - Revert "[llvm-(min-)tblgen] Avoid redundant source compilation (#114494)"
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 2 14:29:00 PST 2025
Author: Michael Kruse
Date: 2025-01-02T23:28:17+01:00
New Revision: 06b6161d3fa9d69a07e9046dbdd2e230b257d948
URL: https://github.com/llvm/llvm-project/commit/06b6161d3fa9d69a07e9046dbdd2e230b257d948
DIFF: https://github.com/llvm/llvm-project/commit/06b6161d3fa9d69a07e9046dbdd2e230b257d948.diff
LOG: Revert "[llvm-(min-)tblgen] Avoid redundant source compilation (#114494)"
This reverts commit f6cb56902c6dcafede21eb6662910b6ff661fc0f.
Buildbot failures such as https://lab.llvm.org/buildbot/#/builders/89/builds/13541:
```
/usr/bin/ld: utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o: undefined reference to symbol '_ZN4llvm23EnableABIBreakingChecksE'
/usr/bin/ld: /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/./lib/libLLVMSupport.so.20.0git: error adding symbols: DSO missing from command line
```
Going to investigate.
Added:
llvm/utils/TableGen/ARMTargetDefEmitter.cpp
llvm/utils/TableGen/Attributes.cpp
llvm/utils/TableGen/DirectiveEmitter.cpp
llvm/utils/TableGen/IntrinsicEmitter.cpp
llvm/utils/TableGen/RISCVTargetDefEmitter.cpp
llvm/utils/TableGen/TableGen.cpp
llvm/utils/TableGen/VTEmitter.cpp
Modified:
llvm/utils/TableGen/Basic/CMakeLists.txt
llvm/utils/TableGen/CMakeLists.txt
Removed:
llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp
llvm/utils/TableGen/Basic/Attributes.cpp
llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp
llvm/utils/TableGen/Basic/TableGen.cpp
llvm/utils/TableGen/Basic/TableGen.h
llvm/utils/TableGen/Basic/VTEmitter.cpp
llvm/utils/TableGen/llvm-min-tblgen.cpp
llvm/utils/TableGen/llvm-tblgen.cpp
################################################################################
diff --git a/llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp b/llvm/utils/TableGen/ARMTargetDefEmitter.cpp
similarity index 100%
rename from llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp
rename to llvm/utils/TableGen/ARMTargetDefEmitter.cpp
diff --git a/llvm/utils/TableGen/Basic/Attributes.cpp b/llvm/utils/TableGen/Attributes.cpp
similarity index 100%
rename from llvm/utils/TableGen/Basic/Attributes.cpp
rename to llvm/utils/TableGen/Attributes.cpp
diff --git a/llvm/utils/TableGen/Basic/CMakeLists.txt b/llvm/utils/TableGen/Basic/CMakeLists.txt
index b058fba78eb05a..41d737e8d418e2 100644
--- a/llvm/utils/TableGen/Basic/CMakeLists.txt
+++ b/llvm/utils/TableGen/Basic/CMakeLists.txt
@@ -9,15 +9,8 @@ set(LLVM_LINK_COMPONENTS
)
add_llvm_library(LLVMTableGenBasic OBJECT EXCLUDE_FROM_ALL DISABLE_LLVM_LINK_LLVM_DYLIB
- ARMTargetDefEmitter.cpp
- Attributes.cpp
CodeGenIntrinsics.cpp
- DirectiveEmitter.cpp
- IntrinsicEmitter.cpp
- RISCVTargetDefEmitter.cpp
SDNodeProperties.cpp
- TableGen.cpp
- VTEmitter.cpp
)
# Users may include its headers as "Basic/*.h"
diff --git a/llvm/utils/TableGen/Basic/TableGen.h b/llvm/utils/TableGen/Basic/TableGen.h
deleted file mode 100644
index 630aea62fcf902..00000000000000
--- a/llvm/utils/TableGen/Basic/TableGen.h
+++ /dev/null
@@ -1,13 +0,0 @@
-//===- TableGen.h ---------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// Shared entry point for llvm-tblgen and llvm-min-tblgen.
-//
-//===----------------------------------------------------------------------===//
-
-int tblgen_main(int argc, char **argv);
diff --git a/llvm/utils/TableGen/CMakeLists.txt b/llvm/utils/TableGen/CMakeLists.txt
index e4b686803c9769..ba1e4aa01b48d6 100644
--- a/llvm/utils/TableGen/CMakeLists.txt
+++ b/llvm/utils/TableGen/CMakeLists.txt
@@ -5,17 +5,20 @@ add_subdirectory(Basic)
# code needed by the backends.
add_subdirectory(Common)
+set(LLVM_LINK_COMPONENTS Support)
+
# llvm-min-tablegen only contains a subset of backends necessary to
# build llvm/include. It must not depend on TableGenCommon, as
# TableGenCommon depends on this already to generate things such as
# ValueType definitions.
-# Sources included in both, llvm-min-tblgen and llvm-tblgen, must be included
-# into LLVMTableGenBasic to avoid redundant compilation and problems with build
-# caches.
-# At least one source file must be included directly to avoid CMake problems.
-# E.g. CMake derives which linker to use from the types of sources added.
add_tablegen(llvm-min-tblgen LLVM_HEADERS
- llvm-min-tblgen.cpp
+ TableGen.cpp
+ ARMTargetDefEmitter.cpp
+ Attributes.cpp
+ DirectiveEmitter.cpp
+ IntrinsicEmitter.cpp
+ RISCVTargetDefEmitter.cpp
+ VTEmitter.cpp
$<TARGET_OBJECTS:obj.LLVMTableGenBasic>
PARTIAL_SOURCES_INTENDED
@@ -29,8 +32,10 @@ set(LLVM_LINK_COMPONENTS
add_tablegen(llvm-tblgen LLVM
DESTINATION "${LLVM_TOOLS_INSTALL_DIR}"
EXPORT LLVM
+ ARMTargetDefEmitter.cpp
AsmMatcherEmitter.cpp
AsmWriterEmitter.cpp
+ Attributes.cpp
CallingConvEmitter.cpp
CodeEmitterGen.cpp
CodeGenMapTable.cpp
@@ -43,6 +48,7 @@ add_tablegen(llvm-tblgen LLVM
DecoderEmitter.cpp
DFAEmitter.cpp
DFAPacketizerEmitter.cpp
+ DirectiveEmitter.cpp
DisassemblerEmitter.cpp
DXILEmitter.cpp
ExegesisEmitter.cpp
@@ -51,15 +57,18 @@ add_tablegen(llvm-tblgen LLVM
GlobalISelEmitter.cpp
InstrDocsEmitter.cpp
InstrInfoEmitter.cpp
- llvm-tblgen.cpp
+ IntrinsicEmitter.cpp
MacroFusionPredicatorEmitter.cpp
OptionParserEmitter.cpp
OptionRSTEmitter.cpp
PseudoLoweringEmitter.cpp
RegisterBankEmitter.cpp
RegisterInfoEmitter.cpp
+ RISCVTargetDefEmitter.cpp
SearchableTableEmitter.cpp
SubtargetEmitter.cpp
+ TableGen.cpp
+ VTEmitter.cpp
WebAssemblyDisassemblerEmitter.cpp
X86InstrMappingEmitter.cpp
X86DisassemblerTables.cpp
@@ -70,8 +79,6 @@ add_tablegen(llvm-tblgen LLVM
$<TARGET_OBJECTS:obj.LLVMTableGenBasic>
$<TARGET_OBJECTS:obj.LLVMTableGenCommon>
- PARTIAL_SOURCES_INTENDED
-
DEPENDS
intrinsics_gen # via llvm-min-tablegen
)
diff --git a/llvm/utils/TableGen/Basic/DirectiveEmitter.cpp b/llvm/utils/TableGen/DirectiveEmitter.cpp
similarity index 100%
rename from llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
rename to llvm/utils/TableGen/DirectiveEmitter.cpp
diff --git a/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp b/llvm/utils/TableGen/IntrinsicEmitter.cpp
similarity index 99%
rename from llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
rename to llvm/utils/TableGen/IntrinsicEmitter.cpp
index fc2b8908a35b84..093602c3da8045 100644
--- a/llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp
+++ b/llvm/utils/TableGen/IntrinsicEmitter.cpp
@@ -10,8 +10,8 @@
//
//===----------------------------------------------------------------------===//
-#include "CodeGenIntrinsics.h"
-#include "SequenceToOffsetTable.h"
+#include "Basic/CodeGenIntrinsics.h"
+#include "Basic/SequenceToOffsetTable.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
diff --git a/llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp b/llvm/utils/TableGen/RISCVTargetDefEmitter.cpp
similarity index 100%
rename from llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp
rename to llvm/utils/TableGen/RISCVTargetDefEmitter.cpp
diff --git a/llvm/utils/TableGen/Basic/TableGen.cpp b/llvm/utils/TableGen/TableGen.cpp
similarity index 94%
rename from llvm/utils/TableGen/Basic/TableGen.cpp
rename to llvm/utils/TableGen/TableGen.cpp
index 80ac93f2b54fb6..bea2a2e735dbe2 100644
--- a/llvm/utils/TableGen/Basic/TableGen.cpp
+++ b/llvm/utils/TableGen/TableGen.cpp
@@ -6,12 +6,10 @@
//
//===----------------------------------------------------------------------===//
//
-// This file contains the global defintions (mostly command line parameters)
-// shared between llvm-tblgen and llvm-min-tblgen.
+// This file contains the main function for LLVM's TableGen.
//
//===----------------------------------------------------------------------===//
-#include "TableGen.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/InitLLVM.h"
@@ -76,7 +74,7 @@ static TableGen::Emitter::Opt X[] = {
{"print-sets", printSets, "Print expanded sets for testing DAG exprs"},
};
-int tblgen_main(int argc, char **argv) {
+int main(int argc, char **argv) {
InitLLVM X(argc, argv);
cl::ParseCommandLineOptions(argc, argv);
diff --git a/llvm/utils/TableGen/Basic/VTEmitter.cpp b/llvm/utils/TableGen/VTEmitter.cpp
similarity index 100%
rename from llvm/utils/TableGen/Basic/VTEmitter.cpp
rename to llvm/utils/TableGen/VTEmitter.cpp
diff --git a/llvm/utils/TableGen/llvm-min-tblgen.cpp b/llvm/utils/TableGen/llvm-min-tblgen.cpp
deleted file mode 100644
index 79fce5c555f6e1..00000000000000
--- a/llvm/utils/TableGen/llvm-min-tblgen.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===- llvm-min-tblgen.cpp ------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the main function for LLVM's TableGen.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Basic/TableGen.h"
-
-/// Command line parameters are shared between llvm-tblgen and llvm-min-tblgen.
-/// The indirection to tblgen_main exists to ensure that the static variables
-/// for the llvm::cl:: mechanism are linked into both executables.
-int main(int argc, char **argv) { return tblgen_main(argc, argv); }
diff --git a/llvm/utils/TableGen/llvm-tblgen.cpp b/llvm/utils/TableGen/llvm-tblgen.cpp
deleted file mode 100644
index a38382472a992b..00000000000000
--- a/llvm/utils/TableGen/llvm-tblgen.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===- llvm-tblgen.cpp ----------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the main function for LLVM's TableGen.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Basic/TableGen.h"
-
-/// Command line parameters are shared between llvm-tblgen and llvm-min-tblgen.
-/// The indirection to tblgen_main exists to ensure that the static variables
-/// for the llvm::cl:: mechanism are linked into both executables.
-int main(int argc, char **argv) { return tblgen_main(argc, argv); }
More information about the llvm-commits
mailing list