InstrProf: Optionally generate coverage maps when profiling

This adds the -profile-coverage-mapping option to swift, and teaches
SILGenProfiling to generate mappings from source ranges to counters.

Swift SVN r25266
This commit is contained in:
Justin Bogner
2015-02-13 08:42:15 +00:00
parent 186f03346a
commit d44090d29e
13 changed files with 614 additions and 3 deletions

View File

@@ -412,7 +412,8 @@ bool SILGenModule::hasFunction(SILDeclRef constant) {
void SILGenModule::visitFuncDecl(FuncDecl *fd) {
const auto &Opts = M.getOptions();
if (Opts.GenerateProfile)
Profiler = llvm::make_unique<SILGenProfiling>(*this);
Profiler = llvm::make_unique<SILGenProfiling>(
*this, Opts.EmitProfileCoverageMapping);
emitFunction(fd);
Profiler = nullptr;
}