forked from OSchip/llvm-project
Add a fast path for setName("") on an unnamed value.
llvm-svn: 79492
This commit is contained in:
parent
463d3407e2
commit
cb13b48969
|
@ -320,6 +320,16 @@ namespace llvm {
|
||||||
return Twine(&Val, UHexKind, 0, EmptyKind);
|
return Twine(&Val, UHexKind, 0, EmptyKind);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @}
|
||||||
|
/// @name Predicate Operations
|
||||||
|
/// @{
|
||||||
|
|
||||||
|
/// isTriviallyEmpty - Check if this twine is trivially empty; a false
|
||||||
|
/// return value does not necessarily mean the twine is empty.
|
||||||
|
bool isTriviallyEmpty() const {
|
||||||
|
return isNullary();
|
||||||
|
}
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
/// @name String Operations
|
/// @name String Operations
|
||||||
/// @{
|
/// @{
|
||||||
|
|
|
@ -171,6 +171,10 @@ std::string Value::getNameStr() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Value::setName(const Twine &NewName) {
|
void Value::setName(const Twine &NewName) {
|
||||||
|
// Fast path for common IRBuilder case of setName("") when there is no name.
|
||||||
|
if (NewName.isTriviallyEmpty() && !hasName())
|
||||||
|
return;
|
||||||
|
|
||||||
SmallString<256> NameData;
|
SmallString<256> NameData;
|
||||||
NewName.toVector(NameData);
|
NewName.toVector(NameData);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue