Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[BOLT] Assertion '__n < this->size()' failed during addDebugFilenameToUnit in CPython #121554

Open
@zanieb

Description

@zanieb

Similar to #121213 but with a different trace

This assertion crashes BOLT during a CPython build. I'm using the 3.13.1 tag for reproducibility.

My usage looks like

git clone https://github.com/python/cpython
cd cpython
git checkout v3.13.1

export CC=clang
export CXX=clang++

./configure py_cv_module__openssl=n/a py_cv_module__hashlib=n/a py_cv_module__gdbm=n/a py_cv_module__tkinter=n/a \
    --without-ensurepip \
    --enable-optimizations --enable-bolt

make -j8

I'll try to create a reproduction in a Dockerfile, if that'd be helpful.

I'm using LLVM 19.1.6 on an x86_64 Arch Linux host

❯ llvm-bolt --version
LLVM (http://llvm.org/):
  LLVM version 19.1.6
  Optimized build.
BOLT revision 6a0964d75628b15bafd078342120888c0e6d126f

Here's the stacktrace

/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_vector.h:1149: const_reference std::vector<llvm::DWARFDebugLine::FileNameEntry>::operator[](size_type) const [_Tp = llvm::DWARFDebugLine::FileNameEntry, _Alloc = std::allocator<llvm::DWARFDebugLine::FileNameEntry>]: Assertion '__n < this->size()' failed.
 #0 0x00005a51dd3fd860 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/lib/Support/Unix/Signals.inc:723:13
 #1 0x00005a51dd3fb49b llvm::sys::RunSignalHandlers() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/lib/Support/Signals.cpp:106:18
 #2 0x00005a51dd3fe165 SignalHandler(int) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/lib/Support/Unix/Signals.inc:413:1
 #3 0x000074697ac4c1d0 (/usr/bin/../lib/libc.so.6+0x3d1d0)
 #4 0x000074697aca53f4 __pthread_kill_implementation /usr/src/debug/glibc/glibc/nptl/pthread_kill.c:44:76
 #5 0x000074697ac4c120 raise /usr/src/debug/glibc/glibc/signal/../sysdeps/posix/raise.c:27:6
 #6 0x000074697ac334c3 abort /usr/src/debug/glibc/glibc/stdlib/abort.c:81:7
 #7 0x000074697aed3af0 std::chrono::_V2::system_clock::now() /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/chrono.cc:52:5
 #8 0x00005a51dda10cf9 std::vector<llvm::DWARFFormValue, std::allocator<llvm::DWARFFormValue>>::operator[](unsigned long) const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_vector.h:1149:2
 #9 0x00005a51dda10cf9 llvm::bolt::BinaryContext::addDebugFilenameToUnit(unsigned int, unsigned int, unsigned int) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryContext.cpp:1587:13
#10 0x00005a51dda220bd (anonymous namespace)::BinaryEmitter::emitLineInfo(llvm::bolt::BinaryFunction const&, llvm::SMLoc, llvm::SMLoc, bool, llvm::MCSymbol*&) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:678:25
#11 0x00005a51dda220bd (anonymous namespace)::BinaryEmitter::emitFunctionBody(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&, bool) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:461:25
#12 0x00005a51dda22e49 (anonymous namespace)::BinaryEmitter::emitFunction(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:376:24
#13 0x00005a51dda226e2 (anonymous namespace)::BinaryEmitter::emitFunctions()::$_0::operator()(std::vector<llvm::bolt::BinaryFunction*, std::allocator<llvm::bolt::BinaryFunction*>> const&) const /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:240:18
#14 0x00005a51dda20fe7 (anonymous namespace)::BinaryEmitter::emitFunctions() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:275:8
#15 0x00005a51dda20fe7 (anonymous namespace)::BinaryEmitter::emitAll(llvm::StringRef) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:205:3
#16 0x00005a51dda20fe7 llvm::bolt::emitBinaryContext(llvm::MCStreamer&, llvm::bolt::BinaryContext&, llvm::StringRef) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:1174:31
#17 0x00005a51dd47278a std::__uniq_ptr_impl<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>::_M_ptr() const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_ptr.h:193:51
#18 0x00005a51dd47278a std::unique_ptr<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>::get() const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_ptr.h:464:21
#19 0x00005a51dd47278a std::unique_ptr<llvm::MCStreamer, std::default_delete<llvm::MCStreamer>>::operator->() const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_ptr.h:457:9
#20 0x00005a51dd47278a llvm::bolt::RewriteInstance::emitAndLink() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Rewrite/RewriteInstance.cpp:3461:3
#21 0x00005a51dd46a0ee llvm::bolt::RewriteInstance::run() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Rewrite/RewriteInstance.cpp:710:3
#22 0x00005a51dcc56a37 llvm::Error::getPtr() const /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/include/llvm/Support/Error.h:282:12
#23 0x00005a51dcc56a37 llvm::Error::operator bool() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/include/llvm/Support/Error.h:242:16
#24 0x00005a51dcc56a37 main /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/tools/driver/llvm-bolt.cpp:267:17
#25 0x000074697ac34e08 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#26 0x000074697ac34ecc call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20
#27 0x000074697ac34ecc __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5
#28 0x00005a51dcc547f5 (/usr/bin/llvm-bolt+0x497f5)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /usr/bin/llvm-bolt python.prebolt -o python.bolt -data=python.fdata -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=none -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot
Additional logs
make profile-bolt-stamp
make[1]: Entering directory '/big/workspace/cpython'
# Ensure a pristine, pre-BOLT copy of the binary and no profile data from last run.
for bin in python; do \
  prebolt="${bin}.prebolt"; \
  if [ -e "${prebolt}" ]; then \
    echo "Restoring pre-BOLT binary ${prebolt}"; \
    mv "${bin}.prebolt" "${bin}"; \
  fi; \
  cp "${bin}" "${prebolt}"; \
  rm -f ${bin}.bolt.*.fdata ${bin}.fdata; \
done
# Instrument each binary.
for bin in python; do \
  /usr/bin/llvm-bolt "${bin}" -instrument -instrumentation-file-append-pid -instrumentation-file=/big/workspace/cpython/${bin}.bolt -o ${bin}.bolt_inst -update-debug-sections; \
  mv "${bin}.bolt_inst" "${bin}"; \
done
BOLT-INFO: Target architecture: x86_64
BOLT-INFO: BOLT version: 6a0964d75628b15bafd078342120888c0e6d126f
BOLT-INFO: first alloc address is 0x400000
BOLT-INFO: creating new program header table at address 0xa00000, offset 0x600000
BOLT-INFO: enabling relocation mode
BOLT-INFO: forcing -jump-tables=move for instrumentation
BOLT-INFO: enabling lite mode
BOLT-INFO: 0 out of 7746 functions in the binary (0.0%) have non-empty execution profile
BOLT-INFO: validate-mem-refs updated 2 object references
BOLT-INSTRUMENTER: Number of indirect call site descriptors: 1995
BOLT-INSTRUMENTER: Number of indirect call target descriptors: 7717
BOLT-INSTRUMENTER: Number of function descriptors: 7717
BOLT-INSTRUMENTER: Number of branch counters: 150914
BOLT-INSTRUMENTER: Number of ST leaf node counters: 47237
BOLT-INSTRUMENTER: Number of direct call counters: 0
BOLT-INSTRUMENTER: Total number of counters: 198151
BOLT-INSTRUMENTER: Total size of counters: 1585208 bytes (static alloc memory)
BOLT-INSTRUMENTER: Total size of string table emitted: 166866 bytes in file
BOLT-INSTRUMENTER: Total size of descriptors: 10930728 bytes in file
BOLT-INSTRUMENTER: Profile will be saved to file /big/workspace/cpython/python.bolt
BOLT-INFO: 66826 instructions were shortened
BOLT-INFO: removed 84 empty blocks
BOLT-INFO: UCE removed 844 blocks and 51394 bytes of code
BOLT-INFO: padding code to 0x1600000 to accommodate hot text
BOLT-INFO: output linked against instrumentation runtime library, lib entry point is 0x18e1950
BOLT-INFO: clear procedure is 0x18dd390
BOLT-INFO: patched build-id (flipped last bit)
BOLT-INFO: setting _end to 0x190345c
BOLT-INFO: setting _end to 0x190345c
BOLT-INFO: setting __bolt_runtime_start to 0x18e1900
BOLT-INFO: setting __bolt_runtime_fini to 0x18e1950
BOLT-INFO: setting __hot_start to 0xc00000
BOLT-INFO: setting __hot_end to 0x14b46c6
# Run instrumented binaries to collect data.
./python -m test --pgo --timeout=
Using random seed: 717582732
0:00:00 load avg: 3.11 Run 44 tests sequentially in a single process
0:00:00 load avg: 3.11 [ 1/44] test_array
0:00:01 load avg: 2.94 [ 2/44] test_base64
0:00:07 load avg: 2.95 [ 3/44] test_binascii
0:00:07 load avg: 2.95 [ 4/44] test_binop
0:00:07 load avg: 2.95 [ 5/44] test_bisect
0:00:08 load avg: 2.95 [ 6/44] test_bytes
0:00:14 load avg: 2.87 [ 7/44] test_bz2
0:00:15 load avg: 2.87 [ 8/44] test_cmath
0:00:15 load avg: 2.87 [ 9/44] test_codecs
0:00:17 load avg: 2.88 [10/44] test_collections
0:00:18 load avg: 2.88 [11/44] test_complex
0:00:19 load avg: 2.88 [12/44] test_dataclasses
0:00:19 load avg: 2.88 [13/44] test_datetime
0:00:26 load avg: 2.59 [14/44] test_decimal
0:00:30 load avg: 2.46 [15/44] test_difflib
0:00:32 load avg: 2.46 [16/44] test_embed
0:00:35 load avg: 2.43 [17/44] test_float
0:00:36 load avg: 2.43 [18/44] test_fstring
0:00:39 load avg: 2.43 [19/44] test_functools
0:00:40 load avg: 2.43 [20/44] test_generators
0:00:40 load avg: 2.43 [21/44] test_hashlib
0:00:41 load avg: 2.31 [22/44] test_heapq
0:00:42 load avg: 2.31 [23/44] test_int
0:00:43 load avg: 2.31 [24/44] test_itertools
0:00:51 load avg: 2.11 [25/44] test_json
0:01:02 load avg: 2.09 [26/44] test_long
0:01:05 load avg: 2.09 [27/44] test_lzma
0:01:05 load avg: 2.09 [28/44] test_math
0:01:08 load avg: 2.00 [29/44] test_memoryview
0:01:09 load avg: 2.00 [30/44] test_operator
0:01:09 load avg: 2.00 [31/44] test_ordered_dict
0:01:11 load avg: 1.92 [32/44] test_patma
0:01:12 load avg: 1.92 [33/44] test_pickle
0:01:18 load avg: 1.85 [34/44] test_pprint
0:01:18 load avg: 1.85 [35/44] test_re
0:01:20 load avg: 1.85 [36/44] test_set
0:01:26 load avg: 1.80 [37/44] test_sqlite3
0:01:33 load avg: 1.73 [38/44] test_statistics
0:01:41 load avg: 1.62 [39/44] test_str
0:01:45 load avg: 1.62 [40/44] test_struct
0:01:47 load avg: 1.57 [41/44] test_tabnanny
0:01:50 load avg: 1.57 [42/44] test_time
0:01:52 load avg: 1.45 [43/44] test_xml_etree
0:01:53 load avg: 1.45 [44/44] test_xml_etree_c
les/getbuildinfo.o Parser/token.o  Parser/pegen.o Parser/pegen_errors.o Parser/action_helpers.o Parser/parser.o Parser/string
Total duration: 1 min 55 sec
Total tests: run=9,394 skipped=214
Total test files: run=44/44
Result: SUCCESS
# Merge all the data files together.
for bin in python; do \
  /usr/bin/merge-fdata ${bin}.*.fdata > "${bin}.fdata"; \
  rm -f ${bin}.*.fdata; \
done
Using legacy profile format.
Profile from 52 files merged.
# Run bolt against the merged data to produce an optimized binary.
for bin in python; do \
  /usr/bin/llvm-bolt "${bin}.prebolt" -o "${bin}.bolt" -data="${bin}.fdata" -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=none -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot ; \
  mv "${bin}.bolt" "${bin}"; \
done
BOLT-WARNING: '-reorder-functions=hfsort+' is deprecated, please use '-reorder-functions=cdsort' instead
BOLT-INFO: Target architecture: x86_64
BOLT-INFO: BOLT version: 6a0964d75628b15bafd078342120888c0e6d126f
BOLT-INFO: first alloc address is 0x400000
BOLT-INFO: enabling relocation mode
BOLT-INFO: enabling lite mode
BOLT-INFO: pre-processing profile using branch profile reader
BOLT-INFO: 4651 out of 7746 functions in the binary (60.0%) have non-empty execution profile
BOLT-INFO: 14 functions with profile could not be optimized
BOLT-INFO: profile for 1 objects was ignored
BOLT-INFO: 62009 instructions were shortened
BOLT-INFO: removed 933 empty blocks
BOLT-INFO: ICF folded 228 out of 8119 functions in 4 passes. 0 functions had jump tables.
BOLT-INFO: Removing all identical functions will save 21.04 KB of code space. Folded functions were called 96915620 times based on profile.
BOLT-INFO: ICP Total indirect calls = 2651973684, 357 callsites cover 99% of all indirect calls
BOLT-INFO: ICP total indirect callsites with profile = 408
BOLT-INFO: ICP total jump table callsites = 327
BOLT-INFO: ICP total number of calls = 1801366538
BOLT-INFO: ICP percentage of calls that are indirect = 57.6%
BOLT-INFO: ICP percentage of indirect calls that can be optimized = 66.0%
BOLT-INFO: ICP percentage of indirect callsites that are optimized = 38.2%
BOLT-INFO: ICP number of method load elimination candidates = 0
BOLT-INFO: ICP percentage of method calls candidates that have loads eliminated = 0.0%
BOLT-INFO: ICP percentage of indirect branches that are optimized = 51.3%
BOLT-INFO: ICP percentage of jump table callsites that are optimized = 38.8%
BOLT-INFO: ICP number of jump table callsites that can use hot indices = 0
BOLT-INFO: ICP percentage of jump table callsites that use hot indices = 0.0%
BOLT-INFO: inlined 441716628 calls at 5714 call sites in 3 iteration(s). Change in binary size: 258240 bytes.
BOLT-INFO: ICF folded 4 out of 7891 functions in 3 passes. 0 functions had jump tables.
BOLT-INFO: Removing all identical functions will save 0.59 KB of code space. Folded functions were called 55974 times based on profile.
BOLT-INFO: basic block reordering modified layout of 2702 functions (58.10% of profiled, 34.26% of total)
BOLT-INFO: UCE removed 55 blocks and 0 bytes of code
BOLT-INFO: splitting separates 1563500 hot bytes from 796858 cold bytes (66.24% of split functions is hot).
BOLT-INFO: 44 Functions were reordered by LoopInversionPass
BOLT-INFO: program-wide dynostats after all optimizations before SCTC and FOP:
s/config.o Modules/main.o Modules/gcmodule.o Modules/atexitmodule.o  Modules/faulthandler.o  Modules/posixmodule.o  Modules/s
         19344703631 : executed forward branches
          2659191733 : taken forward branches
          3760694037 : executed backward branches
          2291469612 : taken backward branches
           850469448 : executed unconditional branches
          3272559894 : all function calls
          1322937184 : indirect calls
           167879416 : PLT calls
        162099894623 : executed instructions
         42144050223 : executed load instructions
         21878573462 : executed store instructions
          1603155126 : taken jump table branches
                   0 : taken unknown indirect branches
         23955867116 : total branches
          5801130793 : taken branches
         18154736323 : non-taken conditional branches
          4950661345 : taken conditional branches
         23105397668 : all conditional branches
         20489079093 : executed forward branches (+5.9%)
          2115361961 : taken forward branches (-20.5%)
          4910822367 : executed backward branches (+30.6%)
          2500360925 : taken backward branches (+9.1%)
           796202750 : executed unconditional branches (-6.4%)
          2832643280 : all function calls (-13.4%)
           609200227 : indirect calls (-54.0%)
           167879160 : PLT calls (-0.0%)
        164775133622 : executed instructions (+1.7%)
         41318829231 : executed load instructions (-2.0%)
         21878527330 : executed store instructions (-0.0%)
           781427138 : taken jump table branches (-51.3%)
                   0 : taken unknown indirect branches (=)
         26196104210 : total branches (+9.4%)
          5411925636 : taken branches (-6.7%)
         20784178574 : non-taken conditional branches (+14.5%)
          4615722886 : taken conditional branches (-6.8%)
         25399901460 : all conditional branches (+9.9%)
BOLT-INFO: SCTC: patched 171 tail calls (170 forward) tail calls (1 backward) from a total of 171 while removing 81 double jumps and removing 204 basic blocks totalling 924 bytes of code. CTCs total execution count is 54997775 and the number of times CTCs are taken is 53824796
BOLT-INFO: FOP optimized 16 redundant load(s) and 0 unused store(s)
BOLT-INFO: Frequency of redundant loads is 17334971 and frequency of unused stores is 0
BOLT-INFO: Frequency of loads changed to use a register is 17334971 and frequency of loads changed to use an immediate is 0
BOLT-INFO: FOP deleted 12 load(s) (dyn count: 17334372) and 0 store(s)
BOLT-INFO: FRAME ANALYSIS: 3468 function(s) were not optimized.
BOLT-INFO: FRAME ANALYSIS: 1229 function(s) (59.0% dyn cov) could not have its frame indices restored.
BOLT-INFO: Shrink wrapping moved 127 spills inserting load/stores and 0 spills inserting push/pops
BOLT-INFO: Shrink wrapping reduced 1314488115 store executions (0.8% total instructions executed, 6.0% store instructions)
BOLT-INFO: Shrink wrapping failed at reducing 0 store executions (0.0% total instructions executed, 0.0% store instructions)
BOLT-INFO: Allocation combiner: 137 empty spaces coalesced (dyn count: 1534146234).
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_vector.h:1149: const_reference std::vector::operator[](size_type) const [_Tp = llvm::DWARFDebugLine::FileNameEntry, _Alloc = std::allocator]: Assertion '__n < this->size()' failed.
 #0 0x00005a51dd3fd860 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/lib/Support/Unix/Signals.inc:723:13
 #1 0x00005a51dd3fb49b llvm::sys::RunSignalHandlers() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/lib/Support/Signals.cpp:106:18
 #2 0x00005a51dd3fe165 SignalHandler(int) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/lib/Support/Unix/Signals.inc:413:1
 #3 0x000074697ac4c1d0 (/usr/bin/../lib/libc.so.6+0x3d1d0)
 #4 0x000074697aca53f4 __pthread_kill_implementation /usr/src/debug/glibc/glibc/nptl/pthread_kill.c:44:76
 #5 0x000074697ac4c120 raise /usr/src/debug/glibc/glibc/signal/../sysdeps/posix/raise.c:27:6
 #6 0x000074697ac334c3 abort /usr/src/debug/glibc/glibc/stdlib/abort.c:81:7
 #7 0x000074697aed3af0 std::chrono::_V2::system_clock::now() /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/chrono.cc:52:5
 #8 0x00005a51dda10cf9 std::vector>::operator[](unsigned long) const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/stl_vector.h:1149:2
 #9 0x00005a51dda10cf9 llvm::bolt::BinaryContext::addDebugFilenameToUnit(unsigned int, unsigned int, unsigned int) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryContext.cpp:1587:13
#10 0x00005a51dda220bd (anonymous namespace)::BinaryEmitter::emitLineInfo(llvm::bolt::BinaryFunction const&, llvm::SMLoc, llvm::SMLoc, bool, llvm::MCSymbol*&) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:678:25
#11 0x00005a51dda220bd (anonymous namespace)::BinaryEmitter::emitFunctionBody(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&, bool) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:461:25
#12 0x00005a51dda22e49 (anonymous namespace)::BinaryEmitter::emitFunction(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:376:24
#13 0x00005a51dda226e2 (anonymous namespace)::BinaryEmitter::emitFunctions()::$_0::operator()(std::vector> const&) const /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:240:18
#14 0x00005a51dda20fe7 (anonymous namespace)::BinaryEmitter::emitFunctions() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:275:8
#15 0x00005a51dda20fe7 (anonymous namespace)::BinaryEmitter::emitAll(llvm::StringRef) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:205:3
#16 0x00005a51dda20fe7 llvm::bolt::emitBinaryContext(llvm::MCStreamer&, llvm::bolt::BinaryContext&, llvm::StringRef) /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Core/BinaryEmitter.cpp:1174:31
#17 0x00005a51dd47278a std::__uniq_ptr_impl>::_M_ptr() const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_ptr.h:193:51
#18 0x00005a51dd47278a std::unique_ptr>::get() const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_ptr.h:464:21
#19 0x00005a51dd47278a std::unique_ptr>::operator->() const /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/unique_ptr.h:457:9
#20 0x00005a51dd47278a llvm::bolt::RewriteInstance::emitAndLink() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Rewrite/RewriteInstance.cpp:3461:3
#21 0x00005a51dd46a0ee llvm::bolt::RewriteInstance::run() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/lib/Rewrite/RewriteInstance.cpp:710:3
#22 0x00005a51dcc56a37 llvm::Error::getPtr() const /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/include/llvm/Support/Error.h:282:12
#23 0x00005a51dcc56a37 llvm::Error::operator bool() /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/llvm/include/llvm/Support/Error.h:242:16
#24 0x00005a51dcc56a37 main /usr/src/debug/llvm-bolt/llvm-project-19.1.6.src/bolt/tools/driver/llvm-bolt.cpp:267:17
#25 0x000074697ac34e08 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#26 0x000074697ac34ecc call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20
#27 0x000074697ac34ecc __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5
#28 0x00005a51dcc547f5 (/usr/bin/llvm-bolt+0x497f5)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /usr/bin/llvm-bolt python.prebolt -o python.bolt -data=python.fdata -update-debug-sections -reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions -icf=1 -inline-all -split-eh -reorder-functions-use-hot-size -peepholes=none -jump-tables=aggressive -inline-ap -indirect-call-promotion=all -dyno-stats -use-gnu-stack -frame-opt=hot
make[1]: *** [Makefile:942: profile-bolt-stamp] Error 134
make[1]: Leaving directory '/big/workspace/cpython'
make: *** [Makefile:965: bolt-opt] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    BOLTcrashPrefer [crash-on-valid] or [crash-on-invalid]

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions