--- a/hotspot/src/share/vm/ci/ciMethodBlocks.cpp Wed Sep 17 08:29:17 2008 -0700
+++ b/hotspot/src/share/vm/ci/ciMethodBlocks.cpp Wed Sep 17 12:59:52 2008 -0700
@@ -49,7 +49,7 @@
// first half. Returns the range beginning at bci.
ciBlock *ciMethodBlocks::split_block_at(int bci) {
ciBlock *former_block = block_containing(bci);
- ciBlock *new_block = new(_arena) ciBlock(_method, _num_blocks++, this, former_block->start_bci());
+ ciBlock *new_block = new(_arena) ciBlock(_method, _num_blocks++, former_block->start_bci());
_blocks->append(new_block);
assert(former_block != NULL, "must not be NULL");
new_block->set_limit_bci(bci);
@@ -83,7 +83,7 @@
if (cb == NULL ) {
// This is our first time visiting this bytecode. Create
// a fresh block and assign it this starting point.
- ciBlock *nb = new(_arena) ciBlock(_method, _num_blocks++, this, bci);
+ ciBlock *nb = new(_arena) ciBlock(_method, _num_blocks++, bci);
_blocks->append(nb);
_bci_to_block[bci] = nb;
return nb;
@@ -98,6 +98,11 @@
}
}
+ciBlock *ciMethodBlocks::make_dummy_block() {
+ ciBlock *dum = new(_arena) ciBlock(_method, -1, 0);
+ return dum;
+}
+
void ciMethodBlocks::do_analysis() {
ciBytecodeStream s(_method);
ciBlock *cur_block = block_containing(0);
@@ -253,7 +258,7 @@
Copy::zero_to_words((HeapWord*) _bci_to_block, b2bsize / sizeof(HeapWord));
// create initial block covering the entire method
- ciBlock *b = new(arena) ciBlock(_method, _num_blocks++, this, 0);
+ ciBlock *b = new(arena) ciBlock(_method, _num_blocks++, 0);
_blocks->append(b);
_bci_to_block[0] = b;
@@ -334,7 +339,7 @@
#endif
-ciBlock::ciBlock(ciMethod *method, int index, ciMethodBlocks *mb, int start_bci) :
+ciBlock::ciBlock(ciMethod *method, int index, int start_bci) :
#ifndef PRODUCT
_method(method),
#endif