summaryrefslogtreecommitdiff
path: root/compiler/sea_ir/code_gen.cc
diff options
context:
space:
mode:
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);