[llvm] 5a90b1e - Save some `std::string` allocations/deallocations when formatting attributes (NFC)
Momchil Velikov via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 31 04:14:22 PST 2022
Author: Momchil Velikov
Date: 2022-01-31T12:13:50Z
New Revision: 5a90b1e4e5ddd59d78a5daa8972df8db35db1a67
URL: https://github.com/llvm/llvm-project/commit/5a90b1e4e5ddd59d78a5daa8972df8db35db1a67
DIFF: https://github.com/llvm/llvm-project/commit/5a90b1e4e5ddd59d78a5daa8972df8db35db1a67.diff
LOG: Save some `std::string` allocations/deallocations when formatting attributes (NFC)
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D118451
Added:
Modified:
llvm/lib/IR/Attributes.cpp
Removed:
################################################################################
diff --git a/llvm/lib/IR/Attributes.cpp b/llvm/lib/IR/Attributes.cpp
index c92bacaee36d..1d56ef01c4e0 100644
--- a/llvm/lib/IR/Attributes.cpp
+++ b/llvm/lib/IR/Attributes.cpp
@@ -390,26 +390,15 @@ std::string Attribute::getAsString(bool InAttrGrp) const {
// align=4
// alignstack=8
//
- if (hasAttribute(Attribute::Alignment)) {
- std::string Result;
- Result += "align";
- Result += (InAttrGrp) ? "=" : " ";
- Result += utostr(getValueAsInt());
- return Result;
- }
+ if (hasAttribute(Attribute::Alignment))
+ return (InAttrGrp ? "align=" + Twine(getValueAsInt())
+ : "align " + Twine(getValueAsInt()))
+ .str();
auto AttrWithBytesToString = [&](const char *Name) {
- std::string Result;
- Result += Name;
- if (InAttrGrp) {
- Result += "=";
- Result += utostr(getValueAsInt());
- } else {
- Result += "(";
- Result += utostr(getValueAsInt());
- Result += ")";
- }
- return Result;
+ return (InAttrGrp ? Name + ("=" + Twine(getValueAsInt()))
+ : Name + ("(" + Twine(getValueAsInt())) + ")")
+ .str();
};
if (hasAttribute(Attribute::StackAlignment))
@@ -426,26 +415,18 @@ std::string Attribute::getAsString(bool InAttrGrp) const {
Optional<unsigned> NumElems;
std::tie(ElemSize, NumElems) = getAllocSizeArgs();
- std::string Result = "allocsize(";
- Result += utostr(ElemSize);
- if (NumElems.hasValue()) {
- Result += ',';
- Result += utostr(*NumElems);
- }
- Result += ')';
- return Result;
+ return (NumElems
+ ? "allocsize(" + Twine(ElemSize) + "," + Twine(*NumElems) + ")"
+ : "allocsize(" + Twine(ElemSize) + ")")
+ .str();
}
if (hasAttribute(Attribute::VScaleRange)) {
unsigned MinValue = getVScaleRangeMin();
Optional<unsigned> MaxValue = getVScaleRangeMax();
-
- std::string Result = "vscale_range(";
- Result += utostr(MinValue);
- Result += ',';
- Result += utostr(MaxValue.getValueOr(0));
- Result += ')';
- return Result;
+ return ("vscale_range(" + Twine(MinValue) + "," +
+ Twine(MaxValue.getValueOr(0)) + ")")
+ .str();
}
// Convert target-dependent attributes to strings of the form:
More information about the llvm-commits
mailing list