about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWesley Wiser <wwiser@gmail.com>2018-06-13 22:08:41 -0400
committerWesley Wiser <wwiser@gmail.com>2018-08-02 18:57:24 -0400
commit256a6e4fa97b3f4261265c89a29a68c4c5ccb618 (patch)
treee1e108f9412e000376575cbb4673833ebf29f6d7
parent579facaba2a11883e24d29c6ac4770942ce3cd50 (diff)
downloadrust-256a6e4fa97b3f4261265c89a29a68c4c5ccb618.tar.gz
rust-256a6e4fa97b3f4261265c89a29a68c4c5ccb618.zip
Include additional data in the json output
-rw-r--r--src/librustc/session/mod.rs2
-rw-r--r--src/librustc/util/profiling.rs13
2 files changed, 12 insertions, 3 deletions
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
index 8bb9f0b9267..0ab482c89a1 100644
--- a/src/librustc/session/mod.rs
+++ b/src/librustc/session/mod.rs
@@ -841,7 +841,7 @@ impl Session {
 
     pub fn save_json_results(&self) {
         let profiler = self.self_profiling.borrow();
-        profiler.save_results();
+        profiler.save_results(&self.opts);
     }
 
     pub fn print_perf_stats(&self) {
diff --git a/src/librustc/util/profiling.rs b/src/librustc/util/profiling.rs
index bbb7bd083b0..6bdc17a74ba 100644
--- a/src/librustc/util/profiling.rs
+++ b/src/librustc/util/profiling.rs
@@ -269,8 +269,17 @@ impl SelfProfiler {
         writeln!(lock, "Incremental: {}", incremental).unwrap();
     }
 
-    pub fn save_results(&self) {
-        fs::write("self_profiler_results.json", self.data.json()).unwrap();
+    pub fn save_results(&self, opts: &Options) {
+        let category_data = self.data.json();
+        let compilation_options = format!("{{ \"optimization_level\": \"{:?}\", \"incremental\": {} }}",
+                                    opts.optimize,
+                                    if opts.incremental.is_some() { "true" } else { "false" });
+
+        let json = format!("{{ \"category_data\": {}, \"compilation_options\": {} }}",
+                        category_data,
+                        compilation_options);
+
+        fs::write("self_profiler_results.json", json).unwrap();
     }
 
     pub fn record_activity<'a>(&'a mut self, category: ProfileCategory) -> ProfilerActivity<'a> {