diff options
| author | 2012-04-29 01:27:58 -0700 | |
|---|---|---|
| committer | 2012-05-03 17:37:53 -0700 | |
| commit | 9948913c01c761493472ccb60ab19be336ac4af4 (patch) | |
| tree | 055e91dec1af28263e07927a34f64eca681c2084 /src/compiler_llvm/method_compiler.cc | |
| parent | 97339c4d9e528609b4778edec113dac6e1c5d682 (diff) | |
Improve the information in the bitcode.
Add origin function named basicblock, and use hex for dex_pc.
Change-Id: I48d59b034c5c8405dcc8341ab956cb70f96d27d9
Diffstat (limited to 'src/compiler_llvm/method_compiler.cc')
| -rw-r--r-- | src/compiler_llvm/method_compiler.cc | 14 |
1 files changed, 12 insertions, 2 deletions
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_); |