[llvm-branch-commits] [llvm] [llvm][mustache] Avoid redundant saves in accessor splitting (PR #159197)
Paul Kirth via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Sep 25 18:55:28 PDT 2025
https://github.com/ilovepi updated https://github.com/llvm/llvm-project/pull/159197
>From 735490e2ecd5c2ff319a105b57d770f9e081350f Mon Sep 17 00:00:00 2001
From: Paul Kirth <paulkirth at google.com>
Date: Tue, 16 Sep 2025 00:11:47 -0700
Subject: [PATCH] [llvm][mustache] Avoid redundant saves in accessor splitting
The splitMustacheString function was saving StringRefs that
were already backed by an arena-allocated string. This was
unnecessary work. This change removes the redundant
Ctx.Saver.save() call.
This optimization provides a small but measurable performance
improvement on top of the single-pass tokenizer, most notably
reducing branch misses.
Metric | Baseline | Optimized | Change
-------------- | -------- | --------- | -------
Time (ms) | 35.77 | 35.57 | -0.56%
Cycles | 35.16M | 34.91M | -0.71%
Instructions | 85.77M | 85.54M | -0.27%
Branch Misses | 113.9K | 111.9K | -1.76%
Cache Misses | 237.7K | 242.1K | +1.85%
---
llvm/lib/Support/Mustache.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Support/Mustache.cpp b/llvm/lib/Support/Mustache.cpp
index 080611edcb3fd..e7129341365e3 100644
--- a/llvm/lib/Support/Mustache.cpp
+++ b/llvm/lib/Support/Mustache.cpp
@@ -52,7 +52,7 @@ static Accessor splitMustacheString(StringRef Str, MustacheContext &Ctx) {
std::tie(Part, Str) = Str.split('.');
// Each part of the accessor needs to be saved to the arena
// to ensure it has a stable address.
- Tokens.push_back(Ctx.Saver.save(Part.trim()));
+ Tokens.push_back(Part.trim());
}
}
// Now, allocate memory for the array of StringRefs in the arena.
More information about the llvm-branch-commits
mailing list