ART: Introduce compiler data type.

Replace most uses of the runtime's Primitive in compiler
with a new class DataType. This prepares for introducing
new types, such as Uint8, that the runtime does not need
to know about.

Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 23964345
Change-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h
index 2c9a9ef..9524fe2 100644
--- a/compiler/optimizing/builder.h
+++ b/compiler/optimizing/builder.h
@@ -27,7 +27,6 @@
 #include "instruction_builder.h"
 #include "nodes.h"
 #include "optimizing_compiler_stats.h"
-#include "primitive.h"
 #include "ssa_builder.h"
 
 namespace art {
@@ -39,45 +38,18 @@
   HGraphBuilder(HGraph* graph,
                 DexCompilationUnit* dex_compilation_unit,
                 const DexCompilationUnit* const outer_compilation_unit,
-                const DexFile* dex_file,
-                const DexFile::CodeItem& code_item,
                 CompilerDriver* driver,
                 CodeGenerator* code_generator,
                 OptimizingCompilerStats* compiler_stats,
                 const uint8_t* interpreter_metadata,
                 Handle<mirror::DexCache> dex_cache,
-                VariableSizedHandleScope* handles)
-      : graph_(graph),
-        dex_file_(dex_file),
-        code_item_(code_item),
-        dex_compilation_unit_(dex_compilation_unit),
-        compiler_driver_(driver),
-        compilation_stats_(compiler_stats),
-        block_builder_(graph, dex_file, code_item),
-        ssa_builder_(graph,
-                     dex_compilation_unit->GetClassLoader(),
-                     dex_compilation_unit->GetDexCache(),
-                     handles),
-        instruction_builder_(graph,
-                             &block_builder_,
-                             &ssa_builder_,
-                             dex_file,
-                             code_item_,
-                             Primitive::GetType(dex_compilation_unit_->GetShorty()[0]),
-                             dex_compilation_unit,
-                             outer_compilation_unit,
-                             driver,
-                             code_generator,
-                             interpreter_metadata,
-                             compiler_stats,
-                             dex_cache,
-                             handles) {}
+                VariableSizedHandleScope* handles);
 
   // Only for unit testing.
   HGraphBuilder(HGraph* graph,
                 const DexFile::CodeItem& code_item,
                 VariableSizedHandleScope* handles,
-                Primitive::Type return_type = Primitive::kPrimInt)
+                DataType::Type return_type = DataType::Type::kInt32)
       : graph_(graph),
         dex_file_(nullptr),
         code_item_(code_item),