[PATCH] D72480: [Matrix] Add info about number of operations to remarks.

Andrea Di Biagio via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 16 06:38:10 PST 2020


andreadb added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp:150-156
+    OpInfoTy add(const OpInfoTy &Other) {
+      auto Result = *this;
+      Result.NumStores += Other.NumStores;
+      Result.NumLoads += Other.NumLoads;
+      Result.NumComputeOps += Other.NumComputeOps;
+      return Result;
+    }
----------------
andreadb wrote:
> So, you are creating a copy of `Other`.
> Then modifying that copy.
> Then returning it by copy. So, there are two copies involved in this computation.
> 
> Did you mean this to be a non mutating function? If so, then it should be marked as const. Otherwise, if the intention was to mutate the `this` fields then you don't need those copies.
> 
> I am writing this because - at least for what I can see - the only use of add() is at line 1208
> 
> ```
>       OpInfoTy Count = CM->second.getOpInfo();
>       for (Value *Op : cast<Instruction>(Root)->operand_values())
>         Count = Count.add(sumOpInfos(Op, ReusedExprs));
>       return Count;
> ```
> 
> Since Count is assigned to by each iteration, you end up with yet another "copy".
> But more importantly, maybe the intention was to make `add()` a mutating function.
> In which case you could use a += operator instead.
> 
Sorry, the first sentence is incorrect. It should have been "So, you are creating a copy of this".


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72480/new/

https://reviews.llvm.org/D72480





More information about the llvm-commits mailing list