64-bit prep
Preparation for 64-bit roll.
o Eliminated storing pointers in 32-bit int slots in LIR.
o General size reductions of common structures to reduce impact
of doubled pointer sizes:
- BasicBlock struct was 72 bytes, now is 48.
- MIR struct was 72 bytes, now is 64.
- RegLocation was 12 bytes, now is 8.
o Generally replaced uses of BasicBlock* pointers with 16-bit Ids.
o Replaced several doubly-linked lists with singly-linked to save
one stored pointer per node.
o We had quite a few uses of uintptr_t's that were a holdover from
the JIT (which used pointers to mapped dex & actual code cache
addresses rather than trace-relative offsets). Replaced those with
uint32_t's.
o Clean up handling of embedded data for switch tables and array data.
o Miscellaneous cleanup.
I anticipate one or two additional CLs to reduce the size of MIR and LIR
structs.
Change-Id: I58e426d3f8e5efe64c1146b2823453da99451230
diff --git a/compiler/dex/dataflow_iterator-inl.h b/compiler/dex/dataflow_iterator-inl.h
index 236c6f4..74f36dd 100644
--- a/compiler/dex/dataflow_iterator-inl.h
+++ b/compiler/dex/dataflow_iterator-inl.h
@@ -25,7 +25,7 @@
inline BasicBlock* DataflowIterator::ForwardSingleNext() {
BasicBlock* res = NULL;
if (idx_ < end_idx_) {
- int bb_id = block_id_list_->Get(idx_++);
+ BasicBlockId bb_id = block_id_list_->Get(idx_++);
res = mir_graph_->GetBasicBlock(bb_id);
}
return res;
@@ -40,7 +40,7 @@
changed_ = false;
}
if (idx_ < end_idx_) {
- int bb_id = block_id_list_->Get(idx_++);
+ BasicBlockId bb_id = block_id_list_->Get(idx_++);
res = mir_graph_->GetBasicBlock(bb_id);
}
return res;
@@ -50,7 +50,7 @@
inline BasicBlock* DataflowIterator::ReverseSingleNext() {
BasicBlock* res = NULL;
if (idx_ >= 0) {
- int bb_id = block_id_list_->Get(idx_--);
+ BasicBlockId bb_id = block_id_list_->Get(idx_--);
res = mir_graph_->GetBasicBlock(bb_id);
}
return res;
@@ -65,7 +65,7 @@
changed_ = false;
}
if (idx_ >= 0) {
- int bb_id = block_id_list_->Get(idx_--);
+ BasicBlockId bb_id = block_id_list_->Get(idx_--);
res = mir_graph_->GetBasicBlock(bb_id);
}
return res;