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
- Repository
- rL LLVM
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 | ||
---|---|---|
150 ↗ | (On Diff #55143) | 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 | ||
---|---|---|
150 ↗ | (On Diff #55143) | Thanks for the pointer (actually instructions(F), from InstIterator.h) |