ART: Added dirty flag to optimizations
- Added a dirty flag to the PassMEDataHolder and use it to determine
if we want to perform the post-optimization passes or not.
Change-Id: I59a85f5198f9224d5fe8893397bfaf68a978d8f1
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
diff --git a/compiler/dex/bb_optimizations.h b/compiler/dex/bb_optimizations.h
index 7395324..2905237 100644
--- a/compiler/dex/bb_optimizations.h
+++ b/compiler/dex/bb_optimizations.h
@@ -95,9 +95,9 @@
cUnit->mir_graph->InlineSpecialMethodsStart();
}
- bool Worker(const PassDataHolder* data) const {
+ bool Worker(PassDataHolder* data) const {
DCHECK(data != nullptr);
- const PassMEDataHolder* pass_me_data_holder = down_cast<const PassMEDataHolder*>(data);
+ PassMEDataHolder* pass_me_data_holder = down_cast<PassMEDataHolder*>(data);
CompilationUnit* cUnit = pass_me_data_holder->c_unit;
DCHECK(cUnit != nullptr);
BasicBlock* bb = pass_me_data_holder->bb;
@@ -131,7 +131,7 @@
cUnit->mir_graph->VerifyDataflow();
}
- bool Worker(const PassDataHolder* data) const;
+ bool Worker(PassDataHolder* data) const;
};
/**
@@ -151,9 +151,9 @@
cUnit->mir_graph->EliminateNullChecksAndInferTypesStart();
}
- bool Worker(const PassDataHolder* data) const {
+ bool Worker(PassDataHolder* data) const {
DCHECK(data != nullptr);
- const PassMEDataHolder* pass_me_data_holder = down_cast<const PassMEDataHolder*>(data);
+ PassMEDataHolder* pass_me_data_holder = down_cast<PassMEDataHolder*>(data);
CompilationUnit* cUnit = pass_me_data_holder->c_unit;
DCHECK(cUnit != nullptr);
BasicBlock* bb = pass_me_data_holder->bb;
@@ -182,9 +182,9 @@
return cUnit->mir_graph->EliminateClassInitChecksGate();
}
- bool Worker(const PassDataHolder* data) const {
+ bool Worker(PassDataHolder* data) const {
DCHECK(data != nullptr);
- const PassMEDataHolder* pass_me_data_holder = down_cast<const PassMEDataHolder*>(data);
+ PassMEDataHolder* pass_me_data_holder = down_cast<PassMEDataHolder*>(data);
CompilationUnit* cUnit = pass_me_data_holder->c_unit;
DCHECK(cUnit != nullptr);
BasicBlock* bb = pass_me_data_holder->bb;
@@ -217,9 +217,9 @@
return cUnit->mir_graph->ApplyGlobalValueNumberingGate();
}
- bool Worker(const PassDataHolder* data) const OVERRIDE {
+ bool Worker(PassDataHolder* data) const {
DCHECK(data != nullptr);
- const PassMEDataHolder* pass_me_data_holder = down_cast<const PassMEDataHolder*>(data);
+ PassMEDataHolder* pass_me_data_holder = down_cast<PassMEDataHolder*>(data);
CompilationUnit* cUnit = pass_me_data_holder->c_unit;
DCHECK(cUnit != nullptr);
BasicBlock* bb = pass_me_data_holder->bb;
@@ -251,7 +251,7 @@
return ((cUnit->disable_opt & (1 << kSuppressExceptionEdges)) != 0);
}
- bool Worker(const PassDataHolder* data) const;
+ bool Worker(PassDataHolder* data) const;
};
/**