summaryrefslogtreecommitdiff
path: root/compiler/sea_ir/code_gen.cc
diff options
context:
space:
mode:
author Dragos Sbirlea <dragoss@google.com> 2013-07-23 14:31:47 -0700
committer Dragos Sbirlea <dragoss@google.com> 2013-07-23 22:48:32 +0000
commit81f79a6672a0bd610f05770d8c96e03e276798da (patch)
tree1b9c9c3d60a528293d822b33bb9d3008913c0218 /compiler/sea_ir/code_gen.cc
parent35275ec4cfe0ebfc247d13c2c96d27c10dc804f9 (diff)
Refactored string to int conversion.
I was using stringstream for int to std::string, but the StringPrintf utility is shorter and cleaner. Change-Id: I454488602459071abb8b846ff7ac8b9594e9d824
Diffstat (limited to 'compiler/sea_ir/code_gen.cc')
-rw-r--r--compiler/sea_ir/code_gen.cc15
1 files changed, 3 insertions, 12 deletions
diff --git a/compiler/sea_ir/code_gen.cc b/compiler/sea_ir/code_gen.cc
index 0bb3a261b3..4e15cf64bc 100644
--- a/compiler/sea_ir/code_gen.cc
+++ b/compiler/sea_ir/code_gen.cc
@@ -66,10 +66,7 @@ void CodeGenPrepassVisitor::Visit(SeaGraph* graph) {
std::vector<llvm::Type*> parameter_types(parameters->size(),
llvm::Type::getInt32Ty(*llvm_data_->context_));
// Build llvm function name.
- std::string function_name = "class=";
- std::stringstream ss;
- ss << graph->class_def_idx_ << "_method=" << graph->method_idx_;
- function_name.append(ss.str());
+ std::string function_name = art::StringPrintf("class=%d_method=%d", graph->class_def_idx_, graph->method_idx_);
// Build llvm function type and parameters.
llvm::FunctionType *function_type = llvm::FunctionType::get(
@@ -82,10 +79,7 @@ void CodeGenPrepassVisitor::Visit(SeaGraph* graph) {
param_id != llvm_data_->function_->arg_size(); ++arg_it, ++param_id) {
DCHECK(parameters->size() > param_id) << "Insufficient parameters for function signature";
// Build parameter register name for LLVM IR clarity.
- std::stringstream ss;
- ss << "r" << parameters->at(param_id);
- std::string arg_name;
- arg_name.append(ss.str());
+ std::string arg_name = art::StringPrintf("r%d", parameters->at(param_id));
arg_it->setName(arg_name);
SignatureNode* parameter = parameters->at(param_id);
llvm_data_->AddValue(parameter, arg_it);
@@ -187,10 +181,7 @@ void CodeGenVisitor::Visit(InvokeStaticInstructionNode* invoke) {
std::string instr = invoke->GetInstruction()->DumpString(NULL);
std::cout << "6.Instruction: " << instr << std::endl;
// TODO: Build callee llvm function name.
- std::string function_name = "class=";
- std::stringstream ss;
- ss << 0 << "_method=" << 1;
- function_name.append(ss.str());
+ std::string function_name = art::StringPrintf("class=%d_method=%d", 0, 1);
llvm::Function *callee = llvm_data_->module_.getFunction(function_name);
// TODO: Add proper checking of the matching between formal and actual signature.
DCHECK(NULL != callee);