Revert "Revert "Use compiler filter to determine oat file status.""

This reverts commit 845e5064580bd37ad5014f7aa0d078be7265464d.

Add an option to change what OatFileManager considers up-to-date.
In our tests we're allowed to write to the dalvik-cache, so it
cannot be kSpeed.

Bug: 27689078
Change-Id: I0c578705a9921114ed1fb00d360cc7448addc93a
diff --git a/runtime/oat.h b/runtime/oat.h
index 1d6c076..0dcc52e 100644
--- a/runtime/oat.h
+++ b/runtime/oat.h
@@ -21,6 +21,7 @@
 
 #include "arch/instruction_set.h"
 #include "base/macros.h"
+#include "compiler_filter.h"
 #include "dex_file.h"
 #include "safe_map.h"
 
@@ -31,7 +32,7 @@
 class PACKED(4) OatHeader {
  public:
   static constexpr uint8_t kOatMagic[] = { 'o', 'a', 't', '\n' };
-  static constexpr uint8_t kOatVersion[] = { '0', '7', '5', '\0' };
+  static constexpr uint8_t kOatVersion[] = { '0', '7', '6', '\0' };
 
   static constexpr const char* kImageLocationKey = "image-location";
   static constexpr const char* kDex2OatCmdLineKey = "dex2oat-cmdline";
@@ -39,14 +40,12 @@
   static constexpr const char* kPicKey = "pic";
   static constexpr const char* kDebuggableKey = "debuggable";
   static constexpr const char* kNativeDebuggableKey = "native-debuggable";
-  static constexpr const char* kCompilationType = "compilation-type";
+  static constexpr const char* kCompilerFilter = "compiler-filter";
   static constexpr const char* kClassPathKey = "classpath";
   static constexpr const char* kBootClassPath = "bootclasspath";
 
   static constexpr const char kTrueValue[] = "true";
   static constexpr const char kFalseValue[] = "false";
-  static constexpr const char kExtractOnlyValue[] = "extract-only";
-  static constexpr const char kProfileGuideCompiledValue[] = "profile-guide";
 
 
   static OatHeader* Create(InstructionSet instruction_set,
@@ -112,8 +111,7 @@
   bool IsPic() const;
   bool IsDebuggable() const;
   bool IsNativeDebuggable() const;
-  bool IsExtractOnly() const;
-  bool IsProfileGuideCompiled() const;
+  CompilerFilter::Filter GetCompilerFilter() const;
 
  private:
   bool KeyHasValue(const char* key, const char* value, size_t value_size) const;