]> granicus.if.org Git - clang/commitdiff
Revert "Reapply "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC""
authorChandler Carruth <chandlerc@gmail.com>
Sat, 14 May 2016 05:39:45 +0000 (05:39 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 14 May 2016 05:39:45 +0000 (05:39 +0000)
This reverts commit r269492 as the corresponding LLVM commit was
reverted due to lots of warnings. See the review thread for the original
LLVM commit (r269491) for details.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@269549 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenPGO.cpp
lib/Frontend/CompilerInvocation.cpp

index 57a6429c4be9f1ceed21bdeb1060c16f99497fdf..79da25c13fa3ba86e509a608df13ff0564f9f594 100644 (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());
   }
index c19321b51290f2297a281d2cf55594b0be413dee..43bc37c49f7d53b7a2af526d83c2c0d2621135f1 100644 (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;
 }
 
index 20b66906d567ce752676260c8a129ae628892d68..8e93ff1a4b4ef415ac856814ec21834f33fb67dc 100644 (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;
   }