Improve the information in the bitcode.
Add origin function named basicblock, and use hex for dex_pc.
Change-Id: I48d59b034c5c8405dcc8341ab956cb70f96d27d9
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index 90731d6..2d69290 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -139,6 +139,11 @@
void MethodCompiler::EmitPrologue() {
// Create basic blocks for prologue
+#if !defined(NDEBUG)
+ // Add a BasicBlock named as PrettyMethod for debugging.
+ llvm::BasicBlock* entry =
+ llvm::BasicBlock::Create(*context_, PrettyMethod(method_idx_, *dex_file_), func_);
+#endif
basic_block_reg_alloca_ =
llvm::BasicBlock::Create(*context_, "prologue.alloca", func_);
@@ -151,6 +156,11 @@
basic_block_reg_arg_init_ =
llvm::BasicBlock::Create(*context_, "prologue.arginit", func_);
+#if !defined(NDEBUG)
+ irb_.SetInsertPoint(entry);
+ irb_.CreateBr(basic_block_reg_alloca_);
+#endif
+
// Create register array
for (uint16_t r = 0; r < code_item_->registers_size_; ++r) {
regs_.push_back(DalvikReg::CreateLocalVarReg(*this, r));
@@ -3660,9 +3670,9 @@
std::string name;
if (postfix) {
- StringAppendF(&name, "B%u.%s", dex_pc, postfix);
+ StringAppendF(&name, "B%04x.%s", dex_pc, postfix);
} else {
- StringAppendF(&name, "B%u", dex_pc);
+ StringAppendF(&name, "B%04x", dex_pc);
}
return llvm::BasicBlock::Create(*context_, name, func_);