Revert "Reapply^2 "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC""

This reverts commit r269695. The llvm commit does not pass the MSVC bot.

llvm-svn: 269701
This commit is contained in:
Vedant Kumar 2016-05-16 21:04:19 +00:00
parent 85c973d3f0
commit da9513fc3c
3 changed files with 10 additions and 14 deletions

View File

@ -141,13 +141,11 @@ CodeGenModule::CodeGenModule(ASTContext &C, const HeaderSearchOptions &HSO,
if (CodeGenOpts.hasProfileClangUse()) {
auto ReaderOrErr = llvm::IndexedInstrProfReader::create(
CodeGenOpts.ProfileInstrumentUsePath);
if (auto E = ReaderOrErr.takeError()) {
if (std::error_code EC = ReaderOrErr.getError()) {
unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Error,
"Could not read profile %0: %1");
llvm::handleAllErrors(std::move(E), [&](const llvm::ErrorInfoBase &EI) {
getDiags().Report(DiagID) << CodeGenOpts.ProfileInstrumentUsePath
<< EI.message();
});
getDiags().Report(DiagID) << CodeGenOpts.ProfileInstrumentUsePath
<< EC.message();
} else
PGOReader = std::move(ReaderOrErr.get());
}

View File

@ -800,21 +800,20 @@ void CodeGenPGO::loadRegionCounts(llvm::IndexedInstrProfReader *PGOReader,
bool IsInMainFile) {
CGM.getPGOStats().addVisited(IsInMainFile);
RegionCounts.clear();
llvm::Expected<llvm::InstrProfRecord> RecordExpected =
llvm::ErrorOr<llvm::InstrProfRecord> RecordErrorOr =
PGOReader->getInstrProfRecord(FuncName, FunctionHash);
if (auto E = RecordExpected.takeError()) {
auto IPE = llvm::InstrProfError::take(std::move(E));
if (IPE == llvm::instrprof_error::unknown_function)
if (std::error_code EC = RecordErrorOr.getError()) {
if (EC == llvm::instrprof_error::unknown_function)
CGM.getPGOStats().addMissing(IsInMainFile);
else if (IPE == llvm::instrprof_error::hash_mismatch)
else if (EC == llvm::instrprof_error::hash_mismatch)
CGM.getPGOStats().addMismatched(IsInMainFile);
else if (IPE == llvm::instrprof_error::malformed)
else if (EC == llvm::instrprof_error::malformed)
// TODO: Consider a more specific warning for this case.
CGM.getPGOStats().addMismatched(IsInMainFile);
return;
}
ProfRecord =
llvm::make_unique<llvm::InstrProfRecord>(std::move(RecordExpected.get()));
llvm::make_unique<llvm::InstrProfRecord>(std::move(RecordErrorOr.get()));
RegionCounts = ProfRecord->Counts;
}

View File

@ -403,8 +403,7 @@ static void setPGOUseInstrumentor(CodeGenOptions &Opts,
const std::string ProfileName) {
auto ReaderOrErr = llvm::IndexedInstrProfReader::create(ProfileName);
// In error, return silently and let Clang PGOUse report the error message.
if (auto E = ReaderOrErr.takeError()) {
llvm::consumeError(std::move(E));
if (ReaderOrErr.getError()) {
Opts.setProfileUse(CodeGenOptions::ProfileClangInstr);
return;
}