[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