Dump ISA into .cfg

The optimizing compiler dumps ISA features into .cfg which can be used
by the checker. A new tool perf2cfg needs to know ISA a CFG corresponds
to. The tool uses this to check that input perf data has the same ISA.

This CL implements in the compiler dumping ISA in addition to ISA features:

begin_compilation
  name "isa:some_isa isa_features:feature1,-feature2"
  method "isa:some_isa isa_features:feature1,-feature2"
  date 1580721972
end_compilation

Bug: 147876827
Test: ./art/tools/checker/run_unit_tests.py
Test: test.py --target --optimizing --jit --interpreter
Test: test.py --host --optimizing --jit --interpreter
Change-Id: I189eae0f4de61e6a49c01d925e7136b5f7027c91
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index de86c44..f201f80 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -440,11 +440,14 @@
 void OptimizingCompiler::DumpInstructionSetFeaturesToCfg() const {
   const CompilerOptions& compiler_options = GetCompilerOptions();
   const InstructionSetFeatures* features = compiler_options.GetInstructionSetFeatures();
+  std::string isa_string =
+      std::string("isa:") + GetInstructionSetString(features->GetInstructionSet());
   std::string features_string = "isa_features:" + features->GetFeatureString();
   // It is assumed that visualizer_output_ is empty when calling this function, hence the fake
   // compilation block containing the ISA features will be printed at the beginning of the .cfg
   // file.
-  *visualizer_output_ << HGraphVisualizer::InsertMetaDataAsCompilationBlock(features_string);
+  *visualizer_output_
+      << HGraphVisualizer::InsertMetaDataAsCompilationBlock(isa_string + ' ' + features_string);
 }
 
 bool OptimizingCompiler::CanCompileMethod(uint32_t method_idx ATTRIBUTE_UNUSED,