diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index e519e53d6257..11782e7ba395 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -146,7 +146,7 @@ impl<'a> StatRecorder<'a> { } else { 0 }; - let istart = ccx.stats.n_llvm_insns; + let istart = ccx.stats.n_llvm_insns.get(); StatRecorder { ccx: ccx, name: name, @@ -162,13 +162,13 @@ impl<'a> Drop for StatRecorder<'a> { if self.ccx.sess.trans_stats() { let end = time::precise_time_ns(); let elapsed = ((end - self.start) / 1_000_000) as uint; - let iend = self.ccx.stats.n_llvm_insns; + let iend = self.ccx.stats.n_llvm_insns.get(); self.ccx.stats.fn_stats.push((self.name.to_owned(), elapsed, iend - self.istart)); self.ccx.stats.n_fns.set(self.ccx.stats.n_fns.get() + 1); // Reset LLVM insn count to avoid compound costs. - self.ccx.stats.n_llvm_insns = self.istart; + self.ccx.stats.n_llvm_insns.set(self.istart); } } } diff --git a/src/librustc/middle/trans/builder.rs b/src/librustc/middle/trans/builder.rs index d2677294945c..49a3ff1c7481 100644 --- a/src/librustc/middle/trans/builder.rs +++ b/src/librustc/middle/trans/builder.rs @@ -47,7 +47,10 @@ impl Builder { pub fn count_insn(&self, category: &str) { if self.ccx.sess.trans_stats() { - self.ccx.stats.n_llvm_insns += 1; + self.ccx.stats.n_llvm_insns.set(self.ccx + .stats + .n_llvm_insns + .get() + 1); } if self.ccx.sess.count_llvm_insns() { base::with_insn_ctxt(|v| { diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs index cbd9ec37a0ca..7791d86dbf42 100644 --- a/src/librustc/middle/trans/common.rs +++ b/src/librustc/middle/trans/common.rs @@ -134,7 +134,7 @@ pub struct Stats { n_monos: Cell, n_inlines: Cell, n_closures: Cell, - n_llvm_insns: uint, + n_llvm_insns: Cell, llvm_insn_ctxt: ~[~str], llvm_insns: HashMap<~str, uint>, fn_stats: ~[(~str, uint, uint)] // (ident, time-in-ms, llvm-instructions) diff --git a/src/librustc/middle/trans/context.rs b/src/librustc/middle/trans/context.rs index 1367a6242d47..8558c0f3cd91 100644 --- a/src/librustc/middle/trans/context.rs +++ b/src/librustc/middle/trans/context.rs @@ -219,7 +219,7 @@ impl CrateContext { n_monos: Cell::new(0u), n_inlines: Cell::new(0u), n_closures: Cell::new(0u), - n_llvm_insns: 0u, + n_llvm_insns: Cell::new(0u), llvm_insn_ctxt: ~[], llvm_insns: HashMap::new(), fn_stats: ~[]