[PATCH] D75201: [ThinLTO/LowerTypeTests] Handle unpromoted local type ids
Eugene Leviant via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 2 08:06:50 PST 2020
evgeny777 added a comment.
@tejohnson I think, I found the reason of crash, described in https://reviews.llvm.org/D73242#1893744. There is the following sequence of instructions in VirtualFileSystem.cpp.obj:
store i32 (...)** bitcast ({ [5 x i8*] }* @"??_7RealFile@?A0x1AE555D7@@6B@" to i32 (...)**), i32 (...)*** %1, align 8, !dbg !36936, !tbaa !15844
...
%3 = tail call i1 @llvm.type.test(i8* bitcast ({ [5 x i8*] }* @"??_7RealFile@?A0x1AE555D7@@6B@" to i8*), metadata !"1$f8264c715b0bffc7d68899cd8e73067d") #8, !dbg !36937
tail call void @llvm.assume(i1 %3) #8, !dbg !36937
The only users of VTable `??_7RealFile@?A0x1AE555D7@@6B@` are store instructions which is not reflected in summary index. This causes type.test not being eliminated during WPD and then lowering to `false` during LTT. So far we get unreachable in the linked image.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75201/new/
https://reviews.llvm.org/D75201
More information about the llvm-commits
mailing list