From 5f2c53bdf4c58a488c098ed42c26dfcd369dd15e Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Thu, 23 Sep 2021 15:35:22 +0100 Subject: [PATCH] Pass some DataLayout arguments by const-ref Avoid unnecessary copies, reported by MSVC static analyzer. --- llvm/lib/Transforms/Coroutines/CoroFrame.cpp | 7 ++++--- llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp | 3 ++- llvm/tools/llvm-exegesis/lib/Assembler.cpp | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp index add3fe7..6184ee5 100644 --- a/llvm/lib/Transforms/Coroutines/CoroFrame.cpp +++ b/llvm/lib/Transforms/Coroutines/CoroFrame.cpp @@ -435,7 +435,7 @@ private: DenseMap FieldIndexByKey; public: - FrameTypeBuilder(LLVMContext &Context, DataLayout const &DL, + FrameTypeBuilder(LLVMContext &Context, const DataLayout &DL, Optional MaxFrameAlignment) : DL(DL), Context(Context), MaxFrameAlignment(MaxFrameAlignment) {} @@ -840,8 +840,9 @@ static StringRef solveTypeName(Type *Ty) { return "UnknownType"; } -static DIType *solveDIType(DIBuilder &Builder, Type *Ty, DataLayout &Layout, - DIScope *Scope, unsigned LineNum, +static DIType *solveDIType(DIBuilder &Builder, Type *Ty, + const DataLayout &Layout, DIScope *Scope, + unsigned LineNum, DenseMap &DITypeCache) { if (DIType *DT = DITypeCache.lookup(Ty)) return DT; diff --git a/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp b/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp index 259b802..fb1940a 100644 --- a/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp +++ b/llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp @@ -67,7 +67,8 @@ bool isUsefullToPreserve(Attribute::AttrKind Kind) { /// This function will try to transform the given knowledge into a more /// canonical one. the canonical knowledge maybe the given one. -RetainedKnowledge canonicalizedKnowledge(RetainedKnowledge RK, DataLayout DL) { +RetainedKnowledge canonicalizedKnowledge(RetainedKnowledge RK, + const DataLayout &DL) { switch (RK.AttrKind) { default: return RK; diff --git a/llvm/tools/llvm-exegesis/lib/Assembler.cpp b/llvm/tools/llvm-exegesis/lib/Assembler.cpp index c5be3bf..982f35f 100644 --- a/llvm/tools/llvm-exegesis/lib/Assembler.cpp +++ b/llvm/tools/llvm-exegesis/lib/Assembler.cpp @@ -153,7 +153,7 @@ ArrayRef FunctionFiller::getRegistersSetUp() const { } static std::unique_ptr -createModule(const std::unique_ptr &Context, const DataLayout DL) { +createModule(const std::unique_ptr &Context, const DataLayout &DL) { auto Mod = std::make_unique(ModuleID, *Context); Mod->setDataLayout(DL); return Mod; -- 2.7.4