summaryrefslogtreecommitdiffstats
path: root/compiler/dex/mir_graph.h
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2015-02-09 12:35:05 +0000
committerVladimir Marko <vmarko@google.com>2015-02-10 18:09:21 +0000
commit6a8946ba3d170fee0ff06de42209be4b14e6aff3 (patch)
tree096e0cf6e9d4b529e22b417dad8432c42b9a8c82 /compiler/dex/mir_graph.h
parent4ba86c428f839cb75f5838b8327e893694377590 (diff)
downloadandroid_art-6a8946ba3d170fee0ff06de42209be4b14e6aff3.tar.gz
android_art-6a8946ba3d170fee0ff06de42209be4b14e6aff3.tar.bz2
android_art-6a8946ba3d170fee0ff06de42209be4b14e6aff3.zip
Quick: Rewrite Phi node insertion.
Delay Phi node insertion to the SSAConversion pass to allow updating the vreg_to_ssa_map_ with INVALID_SREG when we omit a Phi in the pruned SSA form. Change-Id: I450dee21f7dc4353d25fc66f4d0ee01671de6e0e
Diffstat (limited to 'compiler/dex/mir_graph.h')
-rw-r--r--compiler/dex/mir_graph.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h
index 5914245f5b..27dca658e8 100644
--- a/compiler/dex/mir_graph.h
+++ b/compiler/dex/mir_graph.h
@@ -1201,7 +1201,7 @@ class MIRGraph {
void ComputeDominators();
void CompilerInitializeSSAConversion();
virtual void InitializeBasicBlockDataFlow();
- void InsertPhiNodes();
+ void FindPhiNodeBlocks();
void DoDFSPreOrderSSARename(BasicBlock* block);
bool DfsOrdersUpToDate() const {
@@ -1378,6 +1378,7 @@ class MIRGraph {
size_t num_vregs;
ArenaBitVector* work_live_vregs;
ArenaBitVector** def_block_matrix; // num_vregs x num_blocks_.
+ ArenaBitVector** phi_node_blocks; // num_vregs x num_blocks_.
} ssa;
// Global value numbering.
struct {