Enables GVN for MIPS32 and MIPS64.
Test: mma test-art-host-gtest
Test: mma test-art-target-gtest in QEMU
Test: ./testrunner.py --target --optimizing in QEMU
Change-Id: Ie3c6b29b9125ff8aef888c3574bdb0ab96574bd4
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 8dd2762..2305cef 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -670,13 +670,29 @@
case kMips: {
mips::PcRelativeFixups* pc_relative_fixups =
new (arena) mips::PcRelativeFixups(graph, codegen, stats);
+ SideEffectsAnalysis* side_effects = new (arena) SideEffectsAnalysis(graph);
+ GVNOptimization* gvn = new (arena) GVNOptimization(graph, *side_effects, "GVN$after_arch");
HOptimization* mips_optimizations[] = {
+ side_effects,
+ gvn,
pc_relative_fixups,
};
RunOptimizations(mips_optimizations, arraysize(mips_optimizations), pass_observer);
break;
}
#endif
+#ifdef ART_ENABLE_CODEGEN_mips64
+ case kMips64: {
+ SideEffectsAnalysis* side_effects = new (arena) SideEffectsAnalysis(graph);
+ GVNOptimization* gvn = new (arena) GVNOptimization(graph, *side_effects, "GVN$after_arch");
+ HOptimization* mips64_optimizations[] = {
+ side_effects,
+ gvn,
+ };
+ RunOptimizations(mips64_optimizations, arraysize(mips64_optimizations), pass_observer);
+ break;
+ }
+#endif
#ifdef ART_ENABLE_CODEGEN_x86
case kX86: {
x86::PcRelativeFixups* pc_relative_fixups =