diff options
author | 2013-07-23 14:31:47 -0700 | |
---|---|---|
committer | 2013-07-23 22:48:32 +0000 | |
commit | 81f79a6672a0bd610f05770d8c96e03e276798da (patch) | |
tree | 1b9c9c3d60a528293d822b33bb9d3008913c0218 /compiler/sea_ir/code_gen.cc | |
parent | 35275ec4cfe0ebfc247d13c2c96d27c10dc804f9 (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.cc | 15 |
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); |