================ @@ -1920,6 +1924,18 @@ Error LTO::runThinLTO(AddStreamFn AddStream, FileCache Cache, ThinLTO.CombinedIndex, WholeProgramVisibilityEnabledInLTO, DynamicExportSymbols, VisibleToRegularObjSymbols); + Triple TT(getTargetTriple()); + DeadRTTIElimIndex(ThinLTO.CombinedIndex, TT).run(); + + if (!ThinLTO.CombinedIndex.withGlobalValueDeadStripping()) + computeDeadSymbolsWithConstProp(ThinLTO.CombinedIndex, GUIDPreservedSymbols, + IsPrevailing, Conf.OptLevel > 0); ---------------- teresajohnson wrote:
Ah this is a good point. I compared the 2 lambdas and the info they surface has similar sources but there is a key difference in that the one used by dead symbol elim is a tri-state, and we specifically want to identify cases where we had a symbol but it is not prevailing *in the LTO unit*. The info used for the isPrevailing defined below will give the module with the prevailing def for things that the IsPrevailing you are passing down here would give an answer of Prevailing::Yes to. I think this IsPrevailing should probably be renamed to IsPrevailingInLTOUnit and the isPrevailing below to IsPrevailingInModule, or something like that. Don't worry about that for your patch, I'll try to do that separately. https://github.com/llvm/llvm-project/pull/126336 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits