[llvm] remove expensive copy of options passed (PR #82577)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 21 21:08:19 PST 2024
https://github.com/mahesh-attarde created https://github.com/llvm/llvm-project/pull/82577
Codegen option is passed copy by value which 138 bytes of copy and used as read-only. Making pass by const reference.
>From cbccb72bd6c518b45f1468b66406d99f7eb91314 Mon Sep 17 00:00:00 2001
From: mahesh-attarde <mahesh.attarde at intel.com>
Date: Wed, 21 Feb 2024 01:18:49 -0800
Subject: [PATCH] remove expensive copy
---
llvm/include/llvm/Passes/CodeGenPassBuilder.h | 3 ++-
llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/llvm/include/llvm/Passes/CodeGenPassBuilder.h b/llvm/include/llvm/Passes/CodeGenPassBuilder.h
index 80bbfb75185a9c..fce59611beb6e9 100644
--- a/llvm/include/llvm/Passes/CodeGenPassBuilder.h
+++ b/llvm/include/llvm/Passes/CodeGenPassBuilder.h
@@ -114,7 +114,8 @@ namespace llvm {
/// construction.
template <typename DerivedT> class CodeGenPassBuilder {
public:
- explicit CodeGenPassBuilder(LLVMTargetMachine &TM, CGPassBuilderOption Opts,
+ explicit CodeGenPassBuilder(LLVMTargetMachine &TM,
+ const CGPassBuilderOption &Opts,
PassInstrumentationCallbacks *PIC)
: TM(TM), Opt(Opts), PIC(PIC) {
// Target could set CGPassBuilderOption::MISchedPostRA to true to achieve
diff --git a/llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp b/llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
index 4a11dd2e31acde..4a7c9543645e7d 100644
--- a/llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
+++ b/llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
@@ -22,7 +22,7 @@ namespace {
class X86CodeGenPassBuilder : public CodeGenPassBuilder<X86CodeGenPassBuilder> {
public:
explicit X86CodeGenPassBuilder(LLVMTargetMachine &TM,
- CGPassBuilderOption Opts,
+ const CGPassBuilderOption &Opts,
PassInstrumentationCallbacks *PIC)
: CodeGenPassBuilder(TM, Opts, PIC) {}
void addPreISel(AddIRPass &addPass) const;
More information about the llvm-commits
mailing list