Manna created this revision. Manna added reviewers: aaron.ballman, tahonermann. Herald added subscribers: ctetreau, manas, ASDenysPetrov, dkrupp, donat.nagy, Szelethus, a.sidorin, baloghadamsoftware. Herald added a project: All. Manna requested review of this revision. Herald added a project: clang.
Static Analyzer Tool complains about a large function call parameter which is is passed by value in CGBuiltin.cpp file. 1. In CodeGenFunction::EmitSMELdrStr(clang::SVETypeFlags, llvm::SmallVectorImpl<llvm::Value *> &, unsigned int): We are passing parameter TypeFlags of type clang::SVETypeFlags by value. 2. In CodeGenFunction::EmitSMEZero(clang::SVETypeFlags, llvm::SmallVectorImpl<llvm::Value *> &, unsigned int): We are passing parameter TypeFlags of type clang::SVETypeFlags by value. 3. In cCodeGenFunction::EmitSMEReadWrite(clang::SVETypeFlags, llvm::SmallVectorImpl<llvm::Value *> &, unsigned int): We are passing parameter TypeFlags of type clang::SVETypeFlags by value. 4. In CodeGenFunction::EmitSMELd1St1(clang::SVETypeFlags, llvm::SmallVectorImpl<llvm::Value *> &, unsigned int): We are passing parameter TypeFlags of type clang::SVETypeFlags by value. I see many places in CGBuiltin.cpp file, we are passing parameter TypeFlags of type clang::SVETypeFlags by reference. clang::SVETypeFlags inherits several other types: https://clang.llvm.org/doxygen/classclang_1_1SVETypeFlags-members.html This patch passes parameter TypeFlags by reference instead of by value in the function. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D158522 Files: clang/lib/CodeGen/CGBuiltin.cpp Index: clang/lib/CodeGen/CGBuiltin.cpp =================================================================== --- clang/lib/CodeGen/CGBuiltin.cpp +++ clang/lib/CodeGen/CGBuiltin.cpp @@ -9515,7 +9515,7 @@ return Builder.CreateAdd(Base, CastOffset, "tileslice"); } -Value *CodeGenFunction::EmitSMELd1St1(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMELd1St1(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { Ops[3] = EmitSVEPredicateCast( @@ -9545,7 +9545,7 @@ return Builder.CreateCall(F, NewOps); } -Value *CodeGenFunction::EmitSMEReadWrite(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMEReadWrite(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { auto *VecTy = getSVEType(TypeFlags); @@ -9562,7 +9562,7 @@ return Builder.CreateCall(F, Ops); } -Value *CodeGenFunction::EmitSMEZero(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMEZero(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { // svzero_za() intrinsic zeros the entire za tile and has no paramters. @@ -9572,7 +9572,7 @@ return Builder.CreateCall(F, Ops); } -Value *CodeGenFunction::EmitSMELdrStr(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMELdrStr(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { Function *Cntsb = CGM.getIntrinsic(Intrinsic::aarch64_sme_cntsb);
Index: clang/lib/CodeGen/CGBuiltin.cpp =================================================================== --- clang/lib/CodeGen/CGBuiltin.cpp +++ clang/lib/CodeGen/CGBuiltin.cpp @@ -9515,7 +9515,7 @@ return Builder.CreateAdd(Base, CastOffset, "tileslice"); } -Value *CodeGenFunction::EmitSMELd1St1(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMELd1St1(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { Ops[3] = EmitSVEPredicateCast( @@ -9545,7 +9545,7 @@ return Builder.CreateCall(F, NewOps); } -Value *CodeGenFunction::EmitSMEReadWrite(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMEReadWrite(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { auto *VecTy = getSVEType(TypeFlags); @@ -9562,7 +9562,7 @@ return Builder.CreateCall(F, Ops); } -Value *CodeGenFunction::EmitSMEZero(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMEZero(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { // svzero_za() intrinsic zeros the entire za tile and has no paramters. @@ -9572,7 +9572,7 @@ return Builder.CreateCall(F, Ops); } -Value *CodeGenFunction::EmitSMELdrStr(SVETypeFlags TypeFlags, +Value *CodeGenFunction::EmitSMELdrStr(const SVETypeFlags &TypeFlags, SmallVectorImpl<Value *> &Ops, unsigned IntID) { Function *Cntsb = CGM.getIntrinsic(Intrinsic::aarch64_sme_cntsb);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits