[llvm] [llvm-(min-)tblgen] Avoid redundant source compilation (PR #114494)
LLVM Continuous Integration via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 2 14:25:02 PST 2025
llvm-ci wrote:
LLVM Buildbot has detected a new failure on builder `llvm-nvptx64-nvidia-ubuntu` running on `as-builder-7` while building `llvm` at step 5 "build-unified-tree".
Full details are available at: https://lab.llvm.org/buildbot/#/builders/160/builds/10710
<details>
<summary>Here is the relevant piece of the build log for the reference</summary>
```
Step 5 (build-unified-tree) failure: build (failure)
...
2.805 [2374/8/316] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/Attributes.cpp.o
2.860 [2374/7/317] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/TableGen.cpp.o
2.949 [2374/6/318] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/VTEmitter.cpp.o
3.377 [2374/5/319] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/RISCVTargetDefEmitter.cpp.o
4.340 [2374/4/320] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o
4.644 [2374/3/321] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/DirectiveEmitter.cpp.o
6.222 [2374/2/322] Building CXX object utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/IntrinsicEmitter.cpp.o
6.302 [2372/3/323] Linking CXX shared library lib/libLLVMTableGenBasic.so.20.0git
6.323 [2371/3/324] Creating library symlink lib/libLLVMTableGenBasic.so
6.351 [2371/2/325] Linking CXX executable bin/llvm-min-tblgen
FAILED: bin/llvm-min-tblgen
: && /usr/bin/c++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -fuse-ld=gold -Wl,--gc-sections utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/Attributes.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/CodeGenIntrinsics.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/DirectiveEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/IntrinsicEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/RISCVTargetDefEmitter.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/SDNodeProperties.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/TableGen.cpp.o utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/VTEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-min-tblgen.dir/llvm-min-tblgen.cpp.o -o bin/llvm-min-tblgen -Wl,-rpath,"\$ORIGIN/../lib:/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/lib" lib/libLLVMTableGen.so.20.0git -Wl,-rpath-link,/home/buildbot/worker/as-builder-7/ramdisk/llvm-nvptx64-nvidia-ubuntu/build/lib && :
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::support::detail::provider_format_adapter<llvm::StringRef&>::~provider_format_adapter(): error: undefined reference to 'vtable for llvm::support::detail::format_adapter'
/usr/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::support::detail::provider_format_adapter<llvm::StringRef&>::~provider_format_adapter(): error: undefined reference to 'vtable for llvm::support::detail::format_adapter'
/usr/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::support::detail::provider_format_adapter<llvm::StringRef&>::format(llvm::raw_ostream&, llvm::StringRef): error: undefined reference to 'llvm::getAsUnsignedInteger(llvm::StringRef, unsigned int, unsigned long long&)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::support::detail::provider_format_adapter<llvm::StringRef&>::format(llvm::raw_ostream&, llvm::StringRef): error: undefined reference to 'llvm::raw_ostream::write(char const*, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::raw_ostream::operator<<(llvm::StringRef): error: undefined reference to 'llvm::raw_ostream::write(char const*, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::raw_ostream::operator<<(char const*): error: undefined reference to 'llvm::raw_ostream::write(char const*, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::StringMap<std::nullopt_t, llvm::MallocAllocator>::~StringMap(): error: undefined reference to 'llvm::deallocate_buffer(void*, unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function bool llvm::DenseMapBase<llvm::DenseMap<llvm::StringRef, llvm::Record const*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::Record const*> >, llvm::StringRef, llvm::Record const*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::Record const*> >::LookupBucketFor<llvm::StringRef>(llvm::StringRef const&, llvm::detail::DenseMapPair<llvm::StringRef, llvm::Record const*>*&): error: undefined reference to 'llvm::DenseMapInfo<llvm::StringRef, void>::getHashValue(llvm::StringRef)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&)::{lambda(int, int, llvm::StringRef)#3}::operator()(int, int, llvm::StringRef) const [clone .constprop.0]: error: undefined reference to 'llvm::StringRef::upper[abi:cxx11]() const'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&)::{lambda(int, int, llvm::StringRef)#3}::operator()(int, int, llvm::StringRef) const [clone .constprop.0]: error: undefined reference to 'llvm::StringRef::upper[abi:cxx11]() const'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::DenseMap<llvm::StringRef, llvm::Record const*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::Record const*> >::grow(unsigned int): error: undefined reference to 'llvm::allocate_buffer(unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::DenseMap<llvm::StringRef, llvm::Record const*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::Record const*> >::grow(unsigned int): error: undefined reference to 'llvm::DenseMapInfo<llvm::StringRef, void>::getHashValue(llvm::StringRef)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function llvm::DenseMap<llvm::StringRef, llvm::Record const*, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, llvm::Record const*> >::grow(unsigned int): error: undefined reference to 'llvm::deallocate_buffer(void*, unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::hash(llvm::StringRef)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::LookupBucketFor(llvm::StringRef, unsigned int)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::allocate_buffer(unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::RehashTable(unsigned int)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::hash(llvm::StringRef)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::LookupBucketFor(llvm::StringRef, unsigned int)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::allocate_buffer(unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::RehashTable(unsigned int)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::deallocate_buffer(void*, unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::write(char const*, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringRef::upper[abi:cxx11]() const'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringRef::upper[abi:cxx11]() const'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::operator<<(unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::operator<<(unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::operator<<(llvm::format_object_base const&)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::operator<<(llvm::format_object_base const&)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::operator<<(llvm::format_object_base const&)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::raw_ostream::operator<<(unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::hash(llvm::StringRef)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::LookupBucketFor(llvm::StringRef, unsigned int)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::allocate_buffer(unsigned long, unsigned long)'
utils/TableGen/Basic/CMakeFiles/obj.LLVMTableGenBasic.dir/ARMTargetDefEmitter.cpp.o:ARMTargetDefEmitter.cpp:function emitARMTargetDef(llvm::RecordKeeper const&, llvm::raw_ostream&): error: undefined reference to 'llvm::StringMapImpl::RehashTable(unsigned int)'
```
</details>
https://github.com/llvm/llvm-project/pull/114494
More information about the llvm-commits
mailing list