[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