ART: Add compiler option for code deduplication

Add --deduplicate-code and --no-deduplicate-code to ease in
experiments with deduplication, e.g., profiling.

Add dex2oat test.

Test: m test-art-host
Change-Id: Ib6c7fe082f43c5f76c8463cc563e2503c9a50480
diff --git a/compiler/driver/compiler_options_map-inl.h b/compiler/driver/compiler_options_map-inl.h
index 772d1b4..e28d499 100644
--- a/compiler/driver/compiler_options_map-inl.h
+++ b/compiler/driver/compiler_options_map-inl.h
@@ -76,6 +76,7 @@
     }
   }
   map.AssignIfExists(Base::VerboseMethods, &options->verbose_methods_);
+  options->deduplicate_code_ = map.GetOrDefault(Base::DeduplicateCode);
 
   return true;
 }
@@ -123,6 +124,11 @@
           .WithValues({true, false})
           .IntoKey(Map::GenerateBuildID)
 
+      .Define({"--deduplicate-code=_"})
+          .template WithType<bool>()
+          .WithValueMap({{"false", false}, {"true", true}})
+          .IntoKey(Map::DeduplicateCode)
+
       .Define("--debuggable")
           .IntoKey(Map::Debuggable)