[clang] [llvm] [llvm][NFC] Rework Timer.cpp globals to ensure valid lifetimes (PR #121663)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 9 05:39:02 PST 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `sanitizer-x86_64-linux-fast` running on `sanitizer-buildbot4` while building `clang,llvm` at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/169/builds/7207

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[1012/3451] Linking CXX executable bin/llvm-tblgen
[1013/3451] Building Options.inc...
[1014/3363] Generating VCSVersion.inc
[1015/3361] Building LanaiGenCallingConv.inc...
[1016/3361] Building Opcodes.inc...
[1017/3354] Building RISCVTargetParserDef.inc...
[1018/3351] Building AttrDocTable.inc...
[1019/3349] Building R600GenMCCodeEmitter.inc...
[1020/3349] Building WebAssemblyGenSubtargetInfo.inc...
[1021/3349] Building LanaiGenDisassemblerTables.inc...
FAILED: lib/Target/Lanai/LanaiGenDisassemblerTables.inc /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/lib/Target/Lanai/LanaiGenDisassemblerTables.inc 
cd /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan && /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen -gen-disassembler -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/Lanai -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/Lanai/Lanai.td --write-if-changed -o lib/Target/Lanai/LanaiGenDisassemblerTables.inc -d lib/Target/Lanai/LanaiGenDisassemblerTables.inc.d
==2833572==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x555555b51004 in void std::__1::call_once[abi:nn200000]<llvm::TimerGlobals::initDeferred()::'lambda'()>(std::__1::once_flag&, llvm::TimerGlobals::initDeferred()::'lambda'()&&) /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__mutex/once_flag.h:127:7
    #1 0x555555b50f8a in llvm::TimerGlobals::initDeferred() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5
    #2 0x555555b512cc in llvm::TimerGlobals::TimerLock() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:528:48
    #3 0x555555b4e9ea in llvm::TimerGroup::~TimerGroup() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:286:32
    #4 0x555555b50e03 in std::__1::default_delete<llvm::TimerGroup>::operator()[abi:nn200000](llvm::TimerGroup*) const /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:78:5
    #5 0x555555b50873 in std::__1::unique_ptr<llvm::TimerGroup, std::__1::default_delete<llvm::TimerGroup>>::~unique_ptr[abi:nn200000]() /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:269:71
    #6 0x555555b507f9 in llvm::TimerGlobals::~TimerGlobals() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:499:13
    #7 0x555555b4f887 in llvm::object_deleter<llvm::TimerGlobals>::call(void*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/ManagedStatic.h:29:33
    #8 0x555555b37944 in llvm::ManagedStaticBase::destroy() const /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:64:3
    #9 0x555555b379e9 in llvm::llvm_shutdown() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:77:17
    #10 0x555555b370e5 in llvm::InitLLVM::~InitLLVM() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/InitLLVM.cpp:103:3
    #11 0x55555580911a in tblgen_main(int, char**) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/TableGen/Basic/TableGen.cpp:84:1
    #12 0x7ffff7a2a3b7  (/lib/x86_64-linux-gnu/libc.so.6+0x2a3b7) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #13 0x7ffff7a2a47a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a47a) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #14 0x55555573ac04 in _start (/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen+0x1e6c04)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5 in llvm::TimerGlobals::initDeferred()
Exiting
[1022/3349] Building WebAssemblyGenMCCodeEmitter.inc...
[1023/3349] Building LanaiGenMCCodeEmitter.inc...
[1024/3349] Building LanaiGenAsmWriter.inc...
[1025/3349] Building LanaiGenRegisterInfo.inc...
[1026/3348] Building R600GenSubtargetInfo.inc...
[1027/3348] Building LanaiGenInstrInfo.inc...
[1028/3348] Building WebAssemblyGenFastISel.inc...
[1029/3348] Building R600GenAsmWriter.inc...
[1030/3348] Building WebAssemblyGenRegisterInfo.inc...
[1031/3346] Building LanaiGenSubtargetInfo.inc...
[1032/3330] Building LanaiGenDAGISel.inc...
[1033/3328] Building LanaiGenAsmMatcher.inc...
[1034/3326] Building WebAssemblyGenDisassemblerTables.inc...
[1035/3326] Building WebAssemblyGenAsmWriter.inc...
[1036/3326] Building R600GenCallingConv.inc...
[1037/3326] Building WebAssemblyGenAsmMatcher.inc...
[1038/3326] Building R600GenDFAPacketizer.inc...
[1039/3326] Building R600GenRegisterInfo.inc...
Step 12 (stage2/msan build) failure: stage2/msan build (failure)
...
[1012/3451] Linking CXX executable bin/llvm-tblgen
[1013/3451] Building Options.inc...
[1014/3363] Generating VCSVersion.inc
[1015/3361] Building LanaiGenCallingConv.inc...
[1016/3361] Building Opcodes.inc...
[1017/3354] Building RISCVTargetParserDef.inc...
[1018/3351] Building AttrDocTable.inc...
[1019/3349] Building R600GenMCCodeEmitter.inc...
[1020/3349] Building WebAssemblyGenSubtargetInfo.inc...
[1021/3349] Building LanaiGenDisassemblerTables.inc...
FAILED: lib/Target/Lanai/LanaiGenDisassemblerTables.inc /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/lib/Target/Lanai/LanaiGenDisassemblerTables.inc 
cd /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan && /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen -gen-disassembler -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/Lanai -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/Lanai/Lanai.td --write-if-changed -o lib/Target/Lanai/LanaiGenDisassemblerTables.inc -d lib/Target/Lanai/LanaiGenDisassemblerTables.inc.d
==2833572==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x555555b51004 in void std::__1::call_once[abi:nn200000]<llvm::TimerGlobals::initDeferred()::'lambda'()>(std::__1::once_flag&, llvm::TimerGlobals::initDeferred()::'lambda'()&&) /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__mutex/once_flag.h:127:7
    #1 0x555555b50f8a in llvm::TimerGlobals::initDeferred() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5
    #2 0x555555b512cc in llvm::TimerGlobals::TimerLock() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:528:48
    #3 0x555555b4e9ea in llvm::TimerGroup::~TimerGroup() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:286:32
    #4 0x555555b50e03 in std::__1::default_delete<llvm::TimerGroup>::operator()[abi:nn200000](llvm::TimerGroup*) const /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:78:5
    #5 0x555555b50873 in std::__1::unique_ptr<llvm::TimerGroup, std::__1::default_delete<llvm::TimerGroup>>::~unique_ptr[abi:nn200000]() /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:269:71
    #6 0x555555b507f9 in llvm::TimerGlobals::~TimerGlobals() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:499:13
    #7 0x555555b4f887 in llvm::object_deleter<llvm::TimerGlobals>::call(void*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/ManagedStatic.h:29:33
    #8 0x555555b37944 in llvm::ManagedStaticBase::destroy() const /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:64:3
    #9 0x555555b379e9 in llvm::llvm_shutdown() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:77:17
    #10 0x555555b370e5 in llvm::InitLLVM::~InitLLVM() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/InitLLVM.cpp:103:3
    #11 0x55555580911a in tblgen_main(int, char**) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/TableGen/Basic/TableGen.cpp:84:1
    #12 0x7ffff7a2a3b7  (/lib/x86_64-linux-gnu/libc.so.6+0x2a3b7) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #13 0x7ffff7a2a47a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a47a) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #14 0x55555573ac04 in _start (/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen+0x1e6c04)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5 in llvm::TimerGlobals::initDeferred()
Exiting
[1022/3349] Building WebAssemblyGenMCCodeEmitter.inc...
[1023/3349] Building LanaiGenMCCodeEmitter.inc...
[1024/3349] Building LanaiGenAsmWriter.inc...
[1025/3349] Building LanaiGenRegisterInfo.inc...
[1026/3348] Building R600GenSubtargetInfo.inc...
[1027/3348] Building LanaiGenInstrInfo.inc...
[1028/3348] Building WebAssemblyGenFastISel.inc...
[1029/3348] Building R600GenAsmWriter.inc...
[1030/3348] Building WebAssemblyGenRegisterInfo.inc...
[1031/3346] Building LanaiGenSubtargetInfo.inc...
[1032/3330] Building LanaiGenDAGISel.inc...
[1033/3328] Building LanaiGenAsmMatcher.inc...
[1034/3326] Building WebAssemblyGenDisassemblerTables.inc...
[1035/3326] Building WebAssemblyGenAsmWriter.inc...
[1036/3326] Building R600GenCallingConv.inc...
[1037/3326] Building WebAssemblyGenAsmMatcher.inc...
[1038/3326] Building R600GenDFAPacketizer.inc...
[1039/3326] Building R600GenRegisterInfo.inc...
Step 13 (stage2/msan check) failure: stage2/msan check (failure)
...
[14/2175] Building LinalgOpsDialect.cpp.inc...
[15/2175] Building LinalgOpsTypes.cpp.inc...
[16/2175] Building LinalgOpsDialect.h.inc...
[17/2175] Building LinalgOpsTypes.h.inc...
[18/2175] Building LinalgInterfaces.h.inc...
[19/1968] Building LinalgInterfaces.cpp.inc...
[20/1967] Building BPFGenMCCodeEmitter.inc...
[21/1967] Building BPFGenAsmWriter.inc...
[22/1967] Building AVRGenAsmWriter.inc...
[23/1967] Building AVRGenDisassemblerTables.inc...
FAILED: lib/Target/AVR/AVRGenDisassemblerTables.inc /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/lib/Target/AVR/AVRGenDisassemblerTables.inc 
cd /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan && /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen -gen-disassembler -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/AVR -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/AVR/AVR.td --write-if-changed -o lib/Target/AVR/AVRGenDisassemblerTables.inc -d lib/Target/AVR/AVRGenDisassemblerTables.inc.d
==2926044==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x5b101bbc3004 in void std::__1::call_once[abi:nn200000]<llvm::TimerGlobals::initDeferred()::'lambda'()>(std::__1::once_flag&, llvm::TimerGlobals::initDeferred()::'lambda'()&&) /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__mutex/once_flag.h:127:7
    #1 0x5b101bbc2f8a in llvm::TimerGlobals::initDeferred() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5
    #2 0x5b101bbc32cc in llvm::TimerGlobals::TimerLock() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:528:48
    #3 0x5b101bbc09ea in llvm::TimerGroup::~TimerGroup() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:286:32
    #4 0x5b101bbc2e03 in std::__1::default_delete<llvm::TimerGroup>::operator()[abi:nn200000](llvm::TimerGroup*) const /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:78:5
    #5 0x5b101bbc2873 in std::__1::unique_ptr<llvm::TimerGroup, std::__1::default_delete<llvm::TimerGroup>>::~unique_ptr[abi:nn200000]() /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:269:71
    #6 0x5b101bbc27f9 in llvm::TimerGlobals::~TimerGlobals() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:499:13
    #7 0x5b101bbc1887 in llvm::object_deleter<llvm::TimerGlobals>::call(void*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/ManagedStatic.h:29:33
    #8 0x5b101bba9944 in llvm::ManagedStaticBase::destroy() const /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:64:3
    #9 0x5b101bba99e9 in llvm::llvm_shutdown() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:77:17
    #10 0x5b101bba90e5 in llvm::InitLLVM::~InitLLVM() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/InitLLVM.cpp:103:3
    #11 0x5b101b87b11a in tblgen_main(int, char**) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/TableGen/Basic/TableGen.cpp:84:1
    #12 0x775e5542a3b7  (/lib/x86_64-linux-gnu/libc.so.6+0x2a3b7) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #13 0x775e5542a47a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a47a) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #14 0x5b101b7acc04 in _start (/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen+0x1e6c04)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5 in llvm::TimerGlobals::initDeferred()
Exiting
[24/1967] Building LanaiGenDisassemblerTables.inc...
FAILED: lib/Target/Lanai/LanaiGenDisassemblerTables.inc /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/lib/Target/Lanai/LanaiGenDisassemblerTables.inc 
cd /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan && /home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/llvm-tblgen -gen-disassembler -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/Lanai -I/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/include -I/home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include -I /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Target/Lanai/Lanai.td --write-if-changed -o lib/Target/Lanai/LanaiGenDisassemblerTables.inc -d lib/Target/Lanai/LanaiGenDisassemblerTables.inc.d
==2925916==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x555555b51004 in void std::__1::call_once[abi:nn200000]<llvm::TimerGlobals::initDeferred()::'lambda'()>(std::__1::once_flag&, llvm::TimerGlobals::initDeferred()::'lambda'()&&) /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__mutex/once_flag.h:127:7
    #1 0x555555b50f8a in llvm::TimerGlobals::initDeferred() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:516:5
    #2 0x555555b512cc in llvm::TimerGlobals::TimerLock() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:528:48
    #3 0x555555b4e9ea in llvm::TimerGroup::~TimerGroup() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:286:32
    #4 0x555555b50e03 in std::__1::default_delete<llvm::TimerGroup>::operator()[abi:nn200000](llvm::TimerGroup*) const /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:78:5
    #5 0x555555b50873 in std::__1::unique_ptr<llvm::TimerGroup, std::__1::default_delete<llvm::TimerGroup>>::~unique_ptr[abi:nn200000]() /home/b/sanitizer-x86_64-linux-fast/build/libcxx_install_msan/include/c++/v1/__memory/unique_ptr.h:269:71
    #6 0x555555b507f9 in llvm::TimerGlobals::~TimerGlobals() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/Timer.cpp:499:13
    #7 0x555555b4f887 in llvm::object_deleter<llvm::TimerGlobals>::call(void*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/ManagedStatic.h:29:33
    #8 0x555555b37944 in llvm::ManagedStaticBase::destroy() const /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:64:3
    #9 0x555555b379e9 in llvm::llvm_shutdown() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/ManagedStatic.cpp:77:17
    #10 0x555555b370e5 in llvm::InitLLVM::~InitLLVM() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/InitLLVM.cpp:103:3
    #11 0x55555580911a in tblgen_main(int, char**) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/utils/TableGen/Basic/TableGen.cpp:84:1
    #12 0x7ffff7a2a3b7  (/lib/x86_64-linux-gnu/libc.so.6+0x2a3b7) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)
    #13 0x7ffff7a2a47a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a47a) (BuildId: 5f3f024b472f38389da3a2f567b3d0eaa8835ca2)

```

</details>

https://github.com/llvm/llvm-project/pull/121663


More information about the llvm-commits mailing list