2 Commits

Author SHA1 Message Date
Kuba Mracek
6b53ad298e [GlobalDCE] [VFE] Avoid dropping vfunc dependencies when an invalid vtable entry is present
When we scan vtables for a particular vload in ScanVTableLoad and an entry in
one possible vtable is invalid (null or non-fptr), we bail in a wrong way -- we
completely stop the scanning of vtables and this results in dropped dependencies
and incorrectly removed vfuncs from vtables. Let's fix that by correcting the
bailing logic to keep iterating and only skip the invalid entries.

Differential Revision: https://reviews.llvm.org/D120006
2022-02-17 19:41:46 -08:00
Kuba Mracek
21e5a5f0cf [GlobalDCE] [VFE] Add a test for incorrect VFE behavior in presence of null/invalid vtable entries
Add a test for VFE where there's several vtables, and one of them contains an
invalid entry (from VFE's perspective), and which causes VFE to incorrectly skip
scanning subsequent vtables and drop their dependencies.
2022-02-17 10:46:54 -08:00