[llvm] [SROA][NFC] Don't materialize name when discarding names (PR #190368)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 3 10:33:01 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Alexis Engelke (aengelke)
<details>
<summary>Changes</summary>
SetValuePrefix has to materialize the prefix into a std::string, which
is non-free and pointless when value names are discarded.
---
Full diff: https://github.com/llvm/llvm-project/pull/190368.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Scalar/SROA.cpp (+4-2)
``````````diff
diff --git a/llvm/lib/Transforms/Scalar/SROA.cpp b/llvm/lib/Transforms/Scalar/SROA.cpp
index 760b84000fe7b..ed7c03281d4aa 100644
--- a/llvm/lib/Transforms/Scalar/SROA.cpp
+++ b/llvm/lib/Transforms/Scalar/SROA.cpp
@@ -2843,8 +2843,10 @@ class AllocaSliceRewriter : public InstVisitor<AllocaSliceRewriter, bool> {
Instruction *OldUserI = cast<Instruction>(OldUse->getUser());
IRB.SetInsertPoint(OldUserI);
IRB.SetCurrentDebugLocation(OldUserI->getDebugLoc());
- IRB.getInserter().SetNamePrefix(Twine(NewAI.getName()) + "." +
- Twine(BeginOffset) + ".");
+ // Avoid materializing the name prefix when it is discarded anyway.
+ if (!IRB.getContext().shouldDiscardValueNames())
+ IRB.getInserter().SetNamePrefix(Twine(NewAI.getName()) + "." +
+ Twine(BeginOffset) + ".");
CanSROA &= visit(cast<Instruction>(OldUse->getUser()));
if (VecTy || IntTy)
``````````
</details>
https://github.com/llvm/llvm-project/pull/190368
More information about the llvm-commits
mailing list