Emit name only in debug mode.

Change-Id: I5de11b98ae07eccce2ce12d55867ae8d4a98288c
diff --git a/src/compiler_llvm/dalvik_reg.cc b/src/compiler_llvm/dalvik_reg.cc
index 492d33b..0ed6089 100644
--- a/src/compiler_llvm/dalvik_reg.cc
+++ b/src/compiler_llvm/dalvik_reg.cc
@@ -86,6 +86,30 @@
 }
 
 
+llvm::Type* DalvikReg::GetRegCategoryEquivSizeTy(IRBuilder& irb, RegCategory reg_cat) {
+  switch (reg_cat) {
+  case kRegCat1nr:  return irb.getJIntTy();
+  case kRegCat2:    return irb.getJLongTy();
+  case kRegObject:  return irb.getJObjectTy();
+  default:
+    LOG(FATAL) << "Unknown register category: " << reg_cat;
+    return NULL;
+  }
+}
+
+
+char DalvikReg::GetRegCategoryNamePrefix(RegCategory reg_cat) {
+  switch (reg_cat) {
+  case kRegCat1nr:  return 'r';
+  case kRegCat2:    return 'w';
+  case kRegObject:  return 'p';
+  default:
+    LOG(FATAL) << "Unknown register category: " << reg_cat;
+    return '\0';
+  }
+}
+
+
 inline llvm::Value* DalvikReg::RegCat1SExt(llvm::Value* value) {
   return irb_.CreateSExt(value, irb_.getJIntTy());
 }
diff --git a/src/compiler_llvm/dalvik_reg.h b/src/compiler_llvm/dalvik_reg.h
index 2b17541..7356c87 100644
--- a/src/compiler_llvm/dalvik_reg.h
+++ b/src/compiler_llvm/dalvik_reg.h
@@ -39,6 +39,10 @@
 
   static DalvikReg* CreateRetValReg(MethodCompiler& method_compiler);
 
+  static llvm::Type* GetRegCategoryEquivSizeTy(IRBuilder& irb, RegCategory reg_cat);
+
+  static char GetRegCategoryNamePrefix(RegCategory reg_cat);
+
   virtual ~DalvikReg();
 
   llvm::Value* GetValue(JType jty, JTypeSpace space);
diff --git a/src/compiler_llvm/jni_compiler.cc b/src/compiler_llvm/jni_compiler.cc
index 801a692..27fe6db 100644
--- a/src/compiler_llvm/jni_compiler.cc
+++ b/src/compiler_llvm/jni_compiler.cc
@@ -99,7 +99,9 @@
   // "this" object pointer for non-static
   // "class" object pointer for static
   for (unsigned i = 0; arg_iter != arg_end; ++i, ++arg_iter) {
+#if !defined(NDEBUG)
     arg_iter->setName(StringPrintf("a%u", i));
+#endif
     if (arg_iter->getType() == irb_.getJObjectTy()) {
       ++sirt_size;
     }
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index c8976cd..9d0d3f4 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -88,6 +88,7 @@
   func_ = llvm::Function::Create(func_type, llvm::Function::ExternalLinkage,
                                  func_name, module_);
 
+#if !defined(NDEBUG)
   // Set argument name
   llvm::Function::arg_iterator arg_iter(func_->arg_begin());
   llvm::Function::arg_iterator arg_end(func_->arg_end());
@@ -105,6 +106,7 @@
   for (unsigned i = 0; arg_iter != arg_end; ++i, ++arg_iter) {
     arg_iter->setName(StringPrintf("a%u", i));
   }
+#endif
 }
 
 
@@ -3666,11 +3668,13 @@
 CreateBasicBlockWithDexPC(uint32_t dex_pc, char const* postfix) {
   std::string name;
 
+#if !defined(NDEBUG)
   if (postfix) {
     StringAppendF(&name, "B%04x.%s", dex_pc, postfix);
   } else {
     StringAppendF(&name, "B%04x", dex_pc);
   }
+#endif
 
   return llvm::BasicBlock::Create(*context_, name, func_);
 }
@@ -3746,10 +3750,14 @@
   // Get try item from code item
   DexFile::TryItem const* ti = DexFile::GetTryItems(*code_item_, ti_offset);
 
+  std::string lpadname;
+
+#if !defined(NDEBUG)
+  StringAppendF(&lpadname, "lpad%d_%04x_to_%04x", ti_offset, ti->start_addr_, ti->handler_off_);
+#endif
+
   // Create landing pad basic block
-  block_lpad = llvm::BasicBlock::Create(*context_,
-                                        StringPrintf("lpad%d", ti_offset),
-                                        func_);
+  block_lpad = llvm::BasicBlock::Create(*context_, lpadname, func_);
 
   // Change IRBuilder insert point
   llvm::IRBuilderBase::InsertPoint irb_ip_original = irb_.saveIP();
@@ -3820,35 +3828,20 @@
 
 llvm::Value* MethodCompiler::AllocDalvikLocalVarReg(RegCategory cat,
                                                     uint32_t reg_idx) {
+  // Get reg_type and reg_name from DalvikReg
+  llvm::Type* reg_type = DalvikReg::GetRegCategoryEquivSizeTy(irb_, cat);
+  std::string reg_name;
+
+#if !defined(NDEBUG)
+  StringAppendF(&reg_name, "%c%u", DalvikReg::GetRegCategoryNamePrefix(cat), reg_idx);
+#endif
 
   // Save current IR builder insert point
   llvm::IRBuilderBase::InsertPoint irb_ip_original = irb_.saveIP();
+  irb_.SetInsertPoint(basic_block_reg_alloca_);
 
   // Alloca
-  llvm::Value* reg_addr = NULL;
-
-  switch (cat) {
-  case kRegCat1nr:
-    irb_.SetInsertPoint(basic_block_reg_alloca_);
-    reg_addr = irb_.CreateAlloca(irb_.getJIntTy(), 0,
-                                 StringPrintf("r%u", reg_idx));
-    break;
-
-  case kRegCat2:
-    irb_.SetInsertPoint(basic_block_reg_alloca_);
-    reg_addr = irb_.CreateAlloca(irb_.getJLongTy(), 0,
-                                 StringPrintf("w%u", reg_idx));
-    break;
-
-  case kRegObject:
-    irb_.SetInsertPoint(basic_block_reg_alloca_);
-    reg_addr = irb_.CreateAlloca(irb_.getJObjectTy(), 0,
-                                 StringPrintf("o%u", reg_idx));
-    break;
-
-  default:
-    LOG(FATAL) << "Unknown register category for allocation: " << cat;
-  }
+  llvm::Value* reg_addr = irb_.CreateAlloca(reg_type, 0, reg_name);
 
   // Restore IRBuilder insert point
   irb_.restoreIP(irb_ip_original);
@@ -3859,6 +3852,12 @@
 
 
 llvm::Value* MethodCompiler::AllocShadowFrameEntry(uint32_t reg_idx) {
+  std::string reg_name;
+
+#if !defined(NDEBUG)
+  StringAppendF(&reg_name, "o%u", reg_idx);
+#endif
+
   // Save current IR builder insert point
   llvm::IRBuilderBase::InsertPoint irb_ip_original = irb_.saveIP();
 
@@ -3870,8 +3869,7 @@
     irb_.getInt32(reg_idx) // Pointer field
   };
 
-  llvm::Value* reg_addr =
-    irb_.CreateGEP(shadow_frame_, gep_index, StringPrintf("p%u", reg_idx));
+  llvm::Value* reg_addr = irb_.CreateGEP(shadow_frame_, gep_index, reg_name);
 
   // Restore IRBuilder insert point
   irb_.restoreIP(irb_ip_original);
@@ -3882,31 +3880,20 @@
 
 
 llvm::Value* MethodCompiler::AllocDalvikRetValReg(RegCategory cat) {
+  // Get reg_type and reg_name from DalvikReg
+  llvm::Type* reg_type = DalvikReg::GetRegCategoryEquivSizeTy(irb_, cat);
+  std::string reg_name;
+
+#if !defined(NDEBUG)
+  StringAppendF(&reg_name, "%c_res", DalvikReg::GetRegCategoryNamePrefix(cat));
+#endif
+
   // Save current IR builder insert point
   llvm::IRBuilderBase::InsertPoint irb_ip_original = irb_.saveIP();
+  irb_.SetInsertPoint(basic_block_reg_alloca_);
 
   // Alloca
-  llvm::Value* reg_addr = NULL;
-
-  switch (cat) {
-  case kRegCat1nr:
-    irb_.SetInsertPoint(basic_block_reg_alloca_);
-    reg_addr = irb_.CreateAlloca(irb_.getJIntTy(), 0, "r_res");
-    break;
-
-  case kRegCat2:
-    irb_.SetInsertPoint(basic_block_reg_alloca_);
-    reg_addr = irb_.CreateAlloca(irb_.getJLongTy(), 0, "w_res");
-    break;
-
-  case kRegObject:
-    irb_.SetInsertPoint(basic_block_reg_alloca_);
-    reg_addr = irb_.CreateAlloca(irb_.getJObjectTy(), 0, "p_res");
-    break;
-
-  default:
-    LOG(FATAL) << "Unknown register category for allocation: " << cat;
-  }
+  llvm::Value* reg_addr = irb_.CreateAlloca(reg_type, 0, reg_name);
 
   // Restore IRBuilder insert point
   irb_.restoreIP(irb_ip_original);