Introduce a class to implement optimization passes.
- Add art::HOptimization.
- Rename art::ConstantPropagation to art::HConstantFolding in
compiler/optimizing/constant_folding.h to avoid name
clashes with a class of the same name in
compiler/dex/post_opt_passes.h.
- Rename art::DeadCodeElimination to
art::HDeadCodeElimination for consistency reasons.
- Have art::HDeadCodeElimination and art::HConstantFolding
derive from art::HOptimization.
- Start to use these optimizations in
art:OptimizingCompiler::TryCompile.
Change-Id: Iaab350c122d87b2333b3760312b15c0592d7e010
diff --git a/compiler/optimizing/dead_code_elimination.h b/compiler/optimizing/dead_code_elimination.h
index 48739be..a4446ae 100644
--- a/compiler/optimizing/dead_code_elimination.h
+++ b/compiler/optimizing/dead_code_elimination.h
@@ -18,6 +18,7 @@
#define ART_COMPILER_OPTIMIZING_DEAD_CODE_ELIMINATION_H_
#include "nodes.h"
+#include "optimization.h"
namespace art {
@@ -25,17 +26,18 @@
* Optimization pass performing dead code elimination (removal of
* unused variables/instructions) on the SSA form.
*/
-class DeadCodeElimination : public ValueObject {
+class HDeadCodeElimination : public HOptimization {
public:
- explicit DeadCodeElimination(HGraph* graph)
- : graph_(graph) {}
+ HDeadCodeElimination(HGraph* graph, const HGraphVisualizer& visualizer)
+ : HOptimization(graph, true, kDeadCodeEliminationPassName, visualizer) {}
- void Run();
+ virtual void Run() OVERRIDE;
+
+ static constexpr const char* kDeadCodeEliminationPassName =
+ "dead_code_elimination";
private:
- HGraph* const graph_;
-
- DISALLOW_COPY_AND_ASSIGN(DeadCodeElimination);
+ DISALLOW_COPY_AND_ASSIGN(HDeadCodeElimination);
};
} // namespace art