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> {