Add profile writing capabilities for sampling profiles.
[oota-llvm.git] / lib / Transforms / Scalar / SampleProfile.cpp
index fedbcf3a7c003cbe9285c5ab8359c0c93de9aab3..8d5480c7cb502b4e8156275018a830e1f32aabdd 100644 (file)
@@ -737,8 +737,14 @@ INITIALIZE_PASS_END(SampleProfileLoader, "sample-profile",
                     "Sample Profile loader", false, false)
 
 bool SampleProfileLoader::doInitialization(Module &M) {
-  Reader.reset(new SampleProfileReader(M, Filename));
-  ProfileIsValid = Reader->load();
+  if (std::error_code EC =
+          SampleProfileReader::create(Filename, Reader, M.getContext())) {
+    std::string Msg = "Could not open profile: " + EC.message();
+    DiagnosticInfoSampleProfile Diag(Filename.data(), Msg);
+    M.getContext().diagnose(Diag);
+    return false;
+  }
+  ProfileIsValid = (Reader->read() == sampleprof_error::success);
   return true;
 }