Refine the workaround from r266877 that attempts to prevent
renaming of locals in inline assembly, so that in addition to looking
for a llvm.used local value, that there is at least one inline assembly
call in the module. Otherwise, debug functions added to the llvm.used
can block importing/exporting unnecessarily.
Details
Diff Detail
Event Timeline
LGTM.
This is sketchy though, I'm fine with it on the short term, but anything "clever" using the summary will assume that if you have a summary you have all the informations in the summary for the module somehow, which this is breaking AFAICT.
lib/Analysis/ModuleSummaryAnalysis.cpp | ||
---|---|---|
151 | I think there is a shortcut for (auto &I : F.instructions()) |
I don't think it is quite that bad, since in this case we completely prevent building a summary for the module in question, so it should not have a different effect than linking it in as a native object file (where the rest of the bitcode files would have no ability to import from it etc either).
In any case, I do plan to move this to the more refined solution soon, but it isn't at the top of my heap just yet.
lib/Analysis/ModuleSummaryAnalysis.cpp | ||
---|---|---|
151 | Thanks for the pointer (actually instructions(F), from InstIterator.h) |
I think there is a shortcut for (auto &I : F.instructions())