aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/JSBackend/JSBackend.cpp
diff options
context:
space:
mode:
authorDan Gohman <sunfish@mozilla.com>2014-01-29 16:34:16 -0800
committerDan Gohman <sunfish@mozilla.com>2014-01-31 13:08:17 -0800
commit46d6939c50c85b2d6e59a1955261187772a37001 (patch)
tree39d0b22bcb71c2a9d68722fc69177c33ae786df6 /lib/Target/JSBackend/JSBackend.cpp
parenta27ea7c29d7b509a8958c358d6d2fc435b987a60 (diff)
Eliminate more temporary std::strings.
Diffstat (limited to 'lib/Target/JSBackend/JSBackend.cpp')
-rw-r--r--lib/Target/JSBackend/JSBackend.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp
index 97f28d0bc3..57a2537818 100644
--- a/lib/Target/JSBackend/JSBackend.cpp
+++ b/lib/Target/JSBackend/JSBackend.cpp
@@ -217,7 +217,7 @@ namespace {
else if (T->isFloatTy() || T->isDoubleTy()) return 'd'; // TODO: float
else return 'i';
}
- std::string getFunctionSignature(const FunctionType *F, std::string *Name=NULL) {
+ std::string getFunctionSignature(const FunctionType *F, const std::string *Name=NULL) {
if (Name) {
// special-case some function signatures, because of how we emit code for them FIXME this is hackish
if (*Name == "_llvm_memcpy_p0i8_p0i8_i32" || *Name == "_memcpy" ||
@@ -235,7 +235,7 @@ namespace {
return Ret;
}
unsigned getFunctionIndex(const Function *F) {
- std::string Name = getJSName(F);
+ const std::string &Name = getJSName(F);
if (IndexedFunctions.find(Name) != IndexedFunctions.end()) return IndexedFunctions[Name];
std::string Sig = getFunctionSignature(F->getFunctionType(), &Name);
FunctionTable &Table = FunctionTables[Sig];
@@ -310,7 +310,7 @@ namespace {
std::string getValueAsParenStr(const Value*);
std::string getValueAsCastParenStr(const Value*, AsmCast sign=ASM_SIGNED);
- std::string getJSName(const Value* val);
+ const std::string &getJSName(const Value* val);
std::string getPhiCode(const BasicBlock *From, const BasicBlock *To);
@@ -381,7 +381,7 @@ std::string JSWriter::getPhiCode(const BasicBlock *From, const BasicBlock *To) {
int index = P->getBasicBlockIndex(From);
if (index < 0) continue;
// we found it
- std::string name = getJSName(P);
+ const std::string &name = getJSName(P);
assigns[name] = getAssign(name, P->getType());
Value *V = P->getIncomingValue(index);
values[name] = V;
@@ -424,12 +424,12 @@ std::string JSWriter::getPhiCode(const BasicBlock *From, const BasicBlock *To) {
return pre + post;
}
-std::string JSWriter::getJSName(const Value* val) {
- std::string name;
+const std::string &JSWriter::getJSName(const Value* val) {
ValueMap::iterator I = ValueNames.find(val);
if (I != ValueNames.end() && I->first == val)
return I->second;
+ std::string name;
if (val->hasName()) {
if (isa<Function>(val) || isa<Constant>(val)) {
name = std::string("_") + val->getName().str();
@@ -982,7 +982,7 @@ static uint64_t LSBMask(unsigned numBits) {
// generateInstruction - This member is called for each Instruction in a function.
void JSWriter::generateInstruction(const Instruction *I, raw_string_ostream& Code) {
- std::string iName(getJSName(I));
+ const std::string &iName(getJSName(I));
Type *T = I->getType();
if (T->isIntegerTy() && T->getIntegerBitWidth() > 32) {