-
Notifications
You must be signed in to change notification settings - Fork 180
llvm-bolt crashes with a seg fault #58
Comments
Thank you for the bug report. Is your |
cmake -G Ninja ../llvm -DLLVM_TARGETS_TO_BUILD="X86;AArch64" -DCMAKE_BUILD_TYPE=Release I simply followed the instructions on the github page to build the llvm-bolt binary. Are you able to reproduce the issue? |
I'm not sure if it is "the issue", but once I disable assertions I'm hitting a problem with the printout. |
If the last valid printout is "after lower-annotations", then it's the issue with printing profile info for conditional tail calls without annotations. |
To check if that's the problem, you can add |
Adding -simplify-conditional-tail-calls=0 makes it go away. Doesn't crash. Thanks. Is this a bug though in the printing part of the code? |
The problem is that |
OK, so I can confirm that -dyno-stats and -print-all are incompatible (lead to this crash) when -simplify-conditional-tail-calls=1 |
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from commit cd5f3ddf046442b1b53029283ac92002023062e7)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from FBD16444718)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from FBD16444718)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from FBD16444718)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes #58. (cherry picked from FBD16444718)
Summary: After stripping annotations, conditional tail calls no longer can be identified by their corresponding tag. We can check the number of basic block successors instead. Fixes facebookarchive/BOLT#58. (cherry picked from FBD16444718)
Summary: After adding -print-all to the llvm-bolt command arguments, it crashes.
Command that does not crash:
llvm-bolt memcached -o memcached.bolt -data=lbr.fdata -reorder-blocks=cache+ -reorder-functions=hfsort+ -split-functions=3 -split-all-cold -split-eh -dyno-stats -print-profile-stats -print-cache-metrics -report-stale -v=1
Add: -print-all to the command above
Result: Crash
Please see .fdata file and the memcached executable (attached tarball) to reproduce the issue.
Stack dump is as follows:
LLVMSymbolizer: error reading file: No such file or directory
#0 0x0000000000eea11a (llvm-bolt+0xeea11a)
#1 0x0000000000ee82ae (llvm-bolt+0xee82ae)
#2 0x0000000000ee83fc (llvm-bolt+0xee83fc)
#3 0x00007f2c592ec390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#4 0x0000000000508b46 (llvm-bolt+0x508b46)
#5 0x00000000004bc128 (llvm-bolt+0x4bc128)
#6 0x00000000004d318b (llvm-bolt+0x4d318b)
#7 0x00000000004d5807 (llvm-bolt+0x4d5807)
#8 0x0000000000531d13 (llvm-bolt+0x531d13)
#9 0x00000000005735a1 (llvm-bolt+0x5735a1)
#10 0x00000000005736a5 (llvm-bolt+0x5736a5)
#11 0x000000000042d4cc (llvm-bolt+0x42d4cc)
#12 0x00007f2c58049830 __libc_start_main /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:325:0
#13 0x000000000047cec9 (llvm-bolt+0x47cec9)
Stack dump:
0. Program arguments: llvm-bolt memcached -o memcached.bolt -data=lbr.fdata -reorder-blocks=cache+ -reorder-functions=hfsort+ -split-functions=3 -split-all-cold -split-eh -dyno-stats -print-profile-stats -print-cache-metrics -report-stale -v=1 -print-all
Segmentation fault (core dumped)
Note: I renamed the tarball (.tgz) to .zip to satisfy the file uploader
bolt-crash.zip
The text was updated successfully, but these errors were encountered: