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),