diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2018-07-10 22:56:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-10 22:56:42 +0200 |
| commit | aa9ee687f3b41773e2ea3a3a5574fc213ee2976a (patch) | |
| tree | 605fef0eb9ea439976ef4a111762638a326de706 /src | |
| parent | f7c2efddc78086dc81f3ff86641c63318bf072c0 (diff) | |
| parent | aac0d914b2d776c43d6c95054815f49e19792e6e (diff) | |
| download | rust-aa9ee687f3b41773e2ea3a3a5574fc213ee2976a.tar.gz rust-aa9ee687f3b41773e2ea3a3a5574fc213ee2976a.zip | |
Rollup merge of #52171 - bharrisau:fsub-count, r=estebank
Correct some codegen stats counter inconsistencies I noticed some possible typos/inconsistencies in the codegen counters. For example, `fsub` was getting counted as an integer `sub`, whereas `fadd` was counted as an add. And `addincoming` was only being counted on the initial call. https://github.com/rust-lang/rust/blob/dbd10f81758381339f98994b8d31814cf5e98707/src/librustc_codegen_llvm/builder.rs#L831-L841 Only remaining inconsistencies I can see are things like `fadd_fast` are counted as `fadd`. But the vector versions like `vector_reduce_fmax_fast` are counted as `vector.reduce.fmax_fast` not as their 'base' versions (`vector_reduce_fmax` is counted as `vector.reduce.fmax`).
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_codegen_llvm/builder.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/librustc_codegen_llvm/builder.rs b/src/librustc_codegen_llvm/builder.rs index 7b4998e8588..c71e49b0d88 100644 --- a/src/librustc_codegen_llvm/builder.rs +++ b/src/librustc_codegen_llvm/builder.rs @@ -277,7 +277,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { } pub fn nswsub(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef { - self.count_insn("nwsub"); + self.count_insn("nswsub"); unsafe { llvm::LLVMBuildNSWSub(self.llbuilder, lhs, rhs, noname()) } @@ -291,14 +291,14 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { } pub fn fsub(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef { - self.count_insn("sub"); + self.count_insn("fsub"); unsafe { llvm::LLVMBuildFSub(self.llbuilder, lhs, rhs, noname()) } } pub fn fsub_fast(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef { - self.count_insn("sub"); + self.count_insn("fsub"); unsafe { let instr = llvm::LLVMBuildFSub(self.llbuilder, lhs, rhs, noname()); llvm::LLVMRustSetHasUnsafeAlgebra(instr); @@ -1315,6 +1315,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { } pub fn add_incoming_to_phi(&self, phi: ValueRef, val: ValueRef, bb: BasicBlockRef) { + self.count_insn("addincoming"); unsafe { llvm::LLVMAddIncoming(phi, &val, &bb, 1 as c_uint); } |
