[llvm] remove expensive copy of options passed (PR #82577)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 21 21:09:09 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: None (mahesh-attarde)
<details>
<summary>Changes</summary>
Codegen option is passed copy by value which 138 bytes of copy and used as read-only. Making pass by const reference.
---
Full diff: https://github.com/llvm/llvm-project/pull/82577.diff
2 Files Affected:
- (modified) llvm/include/llvm/Passes/CodeGenPassBuilder.h (+2-1)
- (modified) llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp (+1-1)
``````````diff
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;
``````````
</details>
https://github.com/llvm/llvm-project/pull/82577
More information about the llvm-commits
mailing list