From 9948913c01c761493472ccb60ab19be336ac4af4 Mon Sep 17 00:00:00 2001 From: TDYa127 Date: Sun, 29 Apr 2012 01:27:58 -0700 Subject: Improve the information in the bitcode. Add origin function named basicblock, and use hex for dex_pc. Change-Id: I48d59b034c5c8405dcc8341ab956cb70f96d27d9 --- src/compiler_llvm/method_compiler.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/compiler_llvm/method_compiler.cc') diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc index 90731d686a..2d69290e8b 100644 --- a/src/compiler_llvm/method_compiler.cc +++ b/src/compiler_llvm/method_compiler.cc @@ -139,6 +139,11 @@ llvm::FunctionType* MethodCompiler::GetFunctionType(uint32_t method_idx, 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 @@ void MethodCompiler::EmitPrologue() { 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 @@ CreateBasicBlockWithDexPC(uint32_t dex_pc, char const* postfix) { 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_); -- cgit v1.2.3-59-g8ed1b