Move inferred_reg_category_map to greenland.
Change-Id: I33e98b3cfe661f69046362d71f9315bd5b439abd
diff --git a/build/Android.common.mk b/build/Android.common.mk
index 4cfbdd3..e2152df 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -259,14 +259,14 @@
ifeq ($(ART_USE_LLVM_COMPILER),true)
LIBART_COMMON_SRC_FILES += \
- src/compiler_llvm/inferred_reg_category_map.cc \
+ src/greenland/inferred_reg_category_map.cc \
src/compiler_llvm/procedure_linkage_table.cc \
src/compiler_llvm/runtime_support_llvm.cc
endif
ifeq ($(ART_USE_GREENLAND_COMPILER),true)
LIBART_COMMON_SRC_FILES += \
- src/compiler_llvm/inferred_reg_category_map.cc \
+ src/greenland/inferred_reg_category_map.cc \
src/greenland/runtime_entry_points.cc \
src/greenland/runtime/support_alloc.cc \
src/greenland/runtime/support_cast.cc \
diff --git a/build/Android.libart-compiler-greenland.mk b/build/Android.libart-compiler-greenland.mk
index b999eff..9baef696 100644
--- a/build/Android.libart-compiler-greenland.mk
+++ b/build/Android.libart-compiler-greenland.mk
@@ -18,7 +18,7 @@
LIBART_COMPILER_GREENLAND_CFLAGS := -DART_USE_GREENLAND_COMPILER=1
LIBART_COMPILER_GREENLAND_SRC_FILES += \
- src/compiler_llvm/inferred_reg_category_map.cc \
+ src/greenland/inferred_reg_category_map.cc \
src/greenland/dalvik_reg.cc \
src/greenland/dex_lang.cc \
src/greenland/gbc_context.cc \
diff --git a/build/Android.libart-compiler-llvm.mk b/build/Android.libart-compiler-llvm.mk
index 34de2fa..f39b3ea 100644
--- a/build/Android.libart-compiler-llvm.mk
+++ b/build/Android.libart-compiler-llvm.mk
@@ -24,7 +24,6 @@
src/compiler_llvm/compilation_unit.cc \
src/compiler_llvm/compiler_llvm.cc \
src/compiler_llvm/generated/art_module.cc \
- src/compiler_llvm/inferred_reg_category_map.cc \
src/compiler_llvm/ir_builder.cc \
src/compiler_llvm/jni_compiler.cc \
src/compiler_llvm/md_builder.cc \
@@ -33,7 +32,8 @@
src/compiler_llvm/runtime_support_builder_thumb2.cc \
src/compiler_llvm/runtime_support_builder_x86.cc \
src/compiler_llvm/runtime_support_llvm.cc \
- src/compiler_llvm/stub_compiler.cc
+ src/compiler_llvm/stub_compiler.cc \
+ src/greenland/inferred_reg_category_map.cc
ifeq ($(ART_USE_DEXLANG_FRONTEND),true)
LIBART_COMPILER_LLVM_SRC_FILES += \
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index ca8888c..a74a6a4 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -20,7 +20,7 @@
#include "compilation_unit.h"
#include "compiler.h"
#include "dalvik_reg.h"
-#include "inferred_reg_category_map.h"
+#include "greenland/inferred_reg_category_map.h"
#include "ir_builder.h"
#include "logging.h"
#include "oat_compilation_unit.h"
@@ -2042,26 +2042,26 @@
DecodedInstruction dec_insn(insn);
- int8_t src1_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vA);
- int8_t src2_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vB);
+ greenland::RegCategory src1_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vA);
+ greenland::RegCategory src2_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vB);
- DCHECK_NE(kRegUnknown, src1_reg_cat);
- DCHECK_NE(kRegUnknown, src2_reg_cat);
- DCHECK_NE(kRegCat2, src1_reg_cat);
- DCHECK_NE(kRegCat2, src2_reg_cat);
+ DCHECK_NE(greenland::kRegUnknown, src1_reg_cat);
+ DCHECK_NE(greenland::kRegUnknown, src2_reg_cat);
+ DCHECK_NE(greenland::kRegCat2, src1_reg_cat);
+ DCHECK_NE(greenland::kRegCat2, src2_reg_cat);
int32_t branch_offset = dec_insn.vC;
llvm::Value* src1_value;
llvm::Value* src2_value;
- if (src1_reg_cat == kRegZero && src2_reg_cat == kRegZero) {
+ if (src1_reg_cat == greenland::kRegZero && src2_reg_cat == greenland::kRegZero) {
src1_value = irb_.getInt32(0);
src2_value = irb_.getInt32(0);
- } else if (src1_reg_cat != kRegZero && src2_reg_cat != kRegZero) {
+ } else if (src1_reg_cat != greenland::kRegZero && src2_reg_cat != greenland::kRegZero) {
CHECK_EQ(src1_reg_cat, src2_reg_cat);
- if (src1_reg_cat == kRegCat1nr) {
+ if (src1_reg_cat == greenland::kRegCat1nr) {
src1_value = EmitLoadDalvikReg(dec_insn.vA, kInt, kAccurate);
src2_value = EmitLoadDalvikReg(dec_insn.vB, kInt, kAccurate);
} else {
@@ -2069,11 +2069,11 @@
src2_value = EmitLoadDalvikReg(dec_insn.vB, kObject, kAccurate);
}
} else {
- DCHECK(src1_reg_cat == kRegZero ||
- src2_reg_cat == kRegZero);
+ DCHECK(src1_reg_cat == greenland::kRegZero ||
+ src2_reg_cat == greenland::kRegZero);
- if (src1_reg_cat == kRegZero) {
- if (src2_reg_cat == kRegCat1nr) {
+ if (src1_reg_cat == greenland::kRegZero) {
+ if (src2_reg_cat == greenland::kRegCat1nr) {
src1_value = irb_.getJInt(0);
src2_value = EmitLoadDalvikReg(dec_insn.vA, kInt, kAccurate);
} else {
@@ -2081,7 +2081,7 @@
src2_value = EmitLoadDalvikReg(dec_insn.vA, kObject, kAccurate);
}
} else { // src2_reg_cat == kRegZero
- if (src2_reg_cat == kRegCat1nr) {
+ if (src2_reg_cat == greenland::kRegCat1nr) {
src1_value = EmitLoadDalvikReg(dec_insn.vA, kInt, kAccurate);
src2_value = irb_.getJInt(0);
} else {
@@ -2106,20 +2106,20 @@
DecodedInstruction dec_insn(insn);
- int8_t src_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vA);
+ greenland::RegCategory src_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vA);
- DCHECK_NE(kRegUnknown, src_reg_cat);
- DCHECK_NE(kRegCat2, src_reg_cat);
+ DCHECK_NE(greenland::kRegUnknown, src_reg_cat);
+ DCHECK_NE(greenland::kRegCat2, src_reg_cat);
int32_t branch_offset = dec_insn.vB;
llvm::Value* src1_value;
llvm::Value* src2_value;
- if (src_reg_cat == kRegZero) {
+ if (src_reg_cat == greenland::kRegZero) {
src1_value = irb_.getInt32(0);
src2_value = irb_.getInt32(0);
- } else if (src_reg_cat == kRegCat1nr) {
+ } else if (src_reg_cat == greenland::kRegCat1nr) {
src1_value = EmitLoadDalvikReg(dec_insn.vA, kInt, kAccurate);
src2_value = irb_.getInt32(0);
} else {
@@ -2135,26 +2135,26 @@
GetNextBasicBlock(dex_pc));
}
-const InferredRegCategoryMap* MethodCompiler::GetInferredRegCategoryMap() {
+const greenland::InferredRegCategoryMap* MethodCompiler::GetInferredRegCategoryMap() {
Compiler::MethodReference mref(dex_file_, method_idx_);
- const InferredRegCategoryMap* map =
+ const greenland::InferredRegCategoryMap* map =
verifier::MethodVerifier::GetInferredRegCategoryMap(mref);
- CHECK_NE(map, static_cast<InferredRegCategoryMap*>(NULL));
+ CHECK_NE(map, static_cast<greenland::InferredRegCategoryMap*>(NULL));
return map;
}
-RegCategory MethodCompiler::GetInferredRegCategory(uint32_t dex_pc,
- uint16_t reg_idx) {
- const InferredRegCategoryMap* map = GetInferredRegCategoryMap();
+greenland::RegCategory MethodCompiler::GetInferredRegCategory(uint32_t dex_pc,
+ uint16_t reg_idx) {
+ const greenland::InferredRegCategoryMap* map = GetInferredRegCategoryMap();
return map->GetRegCategory(dex_pc, reg_idx);
}
bool MethodCompiler::IsRegCanBeObject(uint16_t reg_idx) {
- const InferredRegCategoryMap* map = GetInferredRegCategoryMap();
+ const greenland::InferredRegCategoryMap* map = GetInferredRegCategoryMap();
return map->IsRegCanBeObject(reg_idx);
}
diff --git a/src/compiler_llvm/method_compiler.h b/src/compiler_llvm/method_compiler.h
index d54be6b..15b8558 100644
--- a/src/compiler_llvm/method_compiler.h
+++ b/src/compiler_llvm/method_compiler.h
@@ -20,6 +20,7 @@
#include "backend_types.h"
#include "dex_file.h"
#include "dex_instruction.h"
+#include "greenland/backend_types.h"
#include "invoke_type.h"
#include "object_utils.h"
#include "runtime_support_func.h"
@@ -39,6 +40,10 @@
class DexCache;
class Field;
class OatCompilationUnit;
+
+ namespace greenland {
+ class InferredRegCategoryMap;
+ }
}
@@ -361,9 +366,9 @@
llvm::Value* array,
llvm::Value* index);
- RegCategory GetInferredRegCategory(uint32_t dex_pc, uint16_t reg);
+ greenland::RegCategory GetInferredRegCategory(uint32_t dex_pc, uint16_t reg);
- const InferredRegCategoryMap* GetInferredRegCategoryMap();
+ const greenland::InferredRegCategoryMap* GetInferredRegCategoryMap();
bool IsRegCanBeObject(uint16_t reg_idx);
diff --git a/src/greenland/backend_types.h b/src/greenland/backend_types.h
index 483d766..dcdd86d 100644
--- a/src/greenland/backend_types.h
+++ b/src/greenland/backend_types.h
@@ -33,6 +33,7 @@
kFloat,
kDouble,
kObject,
+ MAX_JTYPE
};
@@ -111,10 +112,11 @@
case kObject:
return kRegObject;
- }
- LOG(FATAL) << "Unknown java type: " << jty;
- return kRegUnknown;
+ default:
+ LOG(FATAL) << "Unknown java type: " << jty;
+ return kRegUnknown;
+ }
}
diff --git a/src/greenland/dex_lang.cc b/src/greenland/dex_lang.cc
index 0a5bc27..8568130 100644
--- a/src/greenland/dex_lang.cc
+++ b/src/greenland/dex_lang.cc
@@ -18,7 +18,7 @@
#include "intrinsic_helper.h"
-#include "compiler_llvm/inferred_reg_category_map.h"
+#include "greenland/inferred_reg_category_map.h"
#include "object.h" // FIXME: include this in oat_compilation_unit.h
#include "oat_compilation_unit.h"
#include "stl_util.h"
@@ -857,26 +857,26 @@
return ret_val;
}
-compiler_llvm::InferredRegCategoryMap const* DexLang::GetInferredRegCategoryMap() {
+InferredRegCategoryMap const* DexLang::GetInferredRegCategoryMap() {
Compiler::MethodReference mref(dex_file_, method_idx_);
- compiler_llvm::InferredRegCategoryMap const* map =
+ InferredRegCategoryMap const* map =
verifier::MethodVerifier::GetInferredRegCategoryMap(mref);
- CHECK_NE(map, static_cast<compiler_llvm::InferredRegCategoryMap*>(NULL));
+ CHECK_NE(map, static_cast<InferredRegCategoryMap*>(NULL));
return map;
}
-compiler_llvm::RegCategory DexLang::GetInferredRegCategory(unsigned dex_pc,
- unsigned reg_idx) {
- compiler_llvm::InferredRegCategoryMap const* map = GetInferredRegCategoryMap();
+RegCategory DexLang::GetInferredRegCategory(unsigned dex_pc,
+ unsigned reg_idx) {
+ InferredRegCategoryMap const* map = GetInferredRegCategoryMap();
return map->GetRegCategory(dex_pc, reg_idx);
}
bool DexLang::IsRegCanBeObject(unsigned reg_idx) {
- compiler_llvm::InferredRegCategoryMap const* map = GetInferredRegCategoryMap();
+ InferredRegCategoryMap const* map = GetInferredRegCategoryMap();
return map->IsRegCanBeObject(reg_idx);
}
@@ -1702,21 +1702,20 @@
CondBranchKind cond) {
DecodedInstruction dec_insn(insn);
- compiler_llvm::RegCategory src_reg_cat =
- GetInferredRegCategory(dex_pc, dec_insn.vA);
+ RegCategory src_reg_cat = GetInferredRegCategory(dex_pc, dec_insn.vA);
- DCHECK_NE(compiler_llvm::kRegUnknown, src_reg_cat);
- DCHECK_NE(compiler_llvm::kRegCat2, src_reg_cat);
+ DCHECK_NE(kRegUnknown, src_reg_cat);
+ DCHECK_NE(kRegCat2, src_reg_cat);
int32_t branch_offset = dec_insn.vB;
llvm::Value* src1_value;
llvm::Value* src2_value;
- if (src_reg_cat == compiler_llvm::kRegZero) {
+ if (src_reg_cat == kRegZero) {
src1_value = irb_.getInt32(0);
src2_value = irb_.getInt32(0);
- } else if (src_reg_cat == compiler_llvm::kRegCat1nr) {
+ } else if (src_reg_cat == kRegCat1nr) {
src1_value = EmitLoadDalvikReg(dec_insn.vA, kInt, kReg);
src2_value = irb_.getInt32(0);
} else {
diff --git a/src/greenland/dex_lang.h b/src/greenland/dex_lang.h
index 059b972..fdc0a0a 100644
--- a/src/greenland/dex_lang.h
+++ b/src/greenland/dex_lang.h
@@ -18,7 +18,6 @@
#define ART_SRC_GREENLAND_DEX_LANG_H_
#include "backend_types.h"
-#include "compiler_llvm/backend_types.h"
#include "dalvik_reg.h"
#include "ir_builder.h"
@@ -42,15 +41,13 @@
namespace art {
class Compiler;
class OatCompilationUnit;
- namespace compiler_llvm {
- class InferredRegCategoryMap;
- }
}
namespace art {
namespace greenland {
class DalvikReg;
+class InferredRegCategoryMap;
class IntrinsicHelper;
class DexLang {
@@ -168,9 +165,9 @@
//----------------------------------------------------------------------------
// RegCategory
//----------------------------------------------------------------------------
- compiler_llvm::RegCategory GetInferredRegCategory(unsigned dex_pc, unsigned reg_idx);
+ RegCategory GetInferredRegCategory(unsigned dex_pc, unsigned reg_idx);
- compiler_llvm::InferredRegCategoryMap const* GetInferredRegCategoryMap();
+ InferredRegCategoryMap const* GetInferredRegCategoryMap();
bool IsRegCanBeObject(unsigned reg_idx);
diff --git a/src/compiler_llvm/inferred_reg_category_map.cc b/src/greenland/inferred_reg_category_map.cc
similarity index 96%
rename from src/compiler_llvm/inferred_reg_category_map.cc
rename to src/greenland/inferred_reg_category_map.cc
index 0875a3f..86c855c 100644
--- a/src/compiler_llvm/inferred_reg_category_map.cc
+++ b/src/greenland/inferred_reg_category_map.cc
@@ -16,14 +16,13 @@
#include "inferred_reg_category_map.h"
-#include "backend_types.h"
#include "stl_util.h"
#include <stdint.h>
#include <vector>
namespace art {
-namespace compiler_llvm {
+namespace greenland {
InferredRegCategoryMap::InferredRegCategoryMap(uint32_t insns_size,
@@ -99,5 +98,5 @@
}
-} // namespace compiler_llvm
+} // namespace greenland
} // namespace art
diff --git a/src/compiler_llvm/inferred_reg_category_map.h b/src/greenland/inferred_reg_category_map.h
similarity index 90%
rename from src/compiler_llvm/inferred_reg_category_map.h
rename to src/greenland/inferred_reg_category_map.h
index 1626d92..b48dcee 100644
--- a/src/compiler_llvm/inferred_reg_category_map.h
+++ b/src/greenland/inferred_reg_category_map.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef ART_SRC_COMPILER_LLVM_INFERRED_REG_CATEGORY_MAP_H_
-#define ART_SRC_COMPILER_LLVM_INFERRED_REG_CATEGORY_MAP_H_
+#ifndef ART_SRC_GREENLAND_INFERRED_REG_CATEGORY_MAP_H_
+#define ART_SRC_GREENLAND_INFERRED_REG_CATEGORY_MAP_H_
#include "backend_types.h"
@@ -25,7 +25,7 @@
#include "safe_map.h"
namespace art {
-namespace compiler_llvm {
+namespace greenland {
class InferredRegCategoryMap {
@@ -80,7 +80,7 @@
};
-} // namespace compiler_llvm
+} // namespace greenland
} // namespace art
-#endif // ART_SRC_COMPILER_LLVM_INFERRED_REG_CATEGORY_MAP_H_
+#endif // ART_SRC_GREENLAND_INFERRED_REG_CATEGORY_MAP_H_
diff --git a/src/greenland/ir_builder.cc b/src/greenland/ir_builder.cc
index e83996a..12f9dfa 100644
--- a/src/greenland/ir_builder.cc
+++ b/src/greenland/ir_builder.cc
@@ -76,10 +76,11 @@
case kObject:
return GetJObjectTy();
- }
- LOG(FATAL) << "Unknown java type: " << jty;
- return NULL;
+ default:
+ LOG(FATAL) << "Unknown java type: " << jty;
+ return NULL;
+ }
}
llvm::Type* IRBuilder::GetJTypeInRegSpace(JType jty) {
@@ -134,10 +135,11 @@
case kObject:
return GetJObjectTy();
- }
- LOG(FATAL) << "Unknown java type: " << jty;
- return NULL;
+ default:
+ LOG(FATAL) << "Unknown java type: " << jty;
+ return NULL;
+ }
}
} // namespace greenland
diff --git a/src/object.cc b/src/object.cc
index b131517..bac3ec1 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -39,12 +39,6 @@
#include "utils.h"
#include "well_known_classes.h"
-#if defined(ART_USE_LLVM_COMPILER)
-#include "compiler_llvm/inferred_reg_category_map.h"
-#include "compiler_llvm/runtime_support_llvm.h"
-using art::compiler_llvm::InferredRegCategoryMap;
-#endif
-
namespace art {
String* Object::AsString() {
diff --git a/src/verifier/method_verifier.cc b/src/verifier/method_verifier.cc
index 8695d16..8cbf23e 100644
--- a/src/verifier/method_verifier.cc
+++ b/src/verifier/method_verifier.cc
@@ -33,9 +33,8 @@
#include "stringpiece.h"
#if defined(ART_USE_LLVM_COMPILER) || defined(ART_USE_GREENLAND_COMPILER)
-#include "compiler_llvm/backend_types.h"
-#include "compiler_llvm/inferred_reg_category_map.h"
-using namespace art::compiler_llvm;
+#include "greenland/backend_types.h"
+#include "greenland/inferred_reg_category_map.h"
#endif
namespace art {
@@ -3313,7 +3312,7 @@
}
#if defined(ART_USE_LLVM_COMPILER) || defined(ART_USE_GREENLAND_COMPILER)
-const InferredRegCategoryMap* MethodVerifier::GenerateInferredRegCategoryMap() {
+const greenland::InferredRegCategoryMap* MethodVerifier::GenerateInferredRegCategoryMap() {
uint32_t insns_size = code_item_->insns_size_in_code_units_;
uint16_t regs_size = code_item_->registers_size_;
@@ -3339,15 +3338,15 @@
const RegType &rt = line->GetRegisterType(r);
if (rt.IsZero()) {
- table->SetRegCategory(i, r, kRegZero);
+ table->SetRegCategory(i, r, greenland::kRegZero);
} else if (rt.IsCategory1Types()) {
- table->SetRegCategory(i, r, kRegCat1nr);
+ table->SetRegCategory(i, r, greenland::kRegCat1nr);
} else if (rt.IsCategory2Types()) {
- table->SetRegCategory(i, r, kRegCat2);
+ table->SetRegCategory(i, r, greenland::kRegCat2);
} else if (rt.IsReferenceTypes()) {
- table->SetRegCategory(i, r, kRegObject);
+ table->SetRegCategory(i, r, greenland::kRegObject);
} else {
- table->SetRegCategory(i, r, kRegUnknown);
+ table->SetRegCategory(i, r, greenland::kRegUnknown);
}
}
}
@@ -3372,7 +3371,7 @@
CHECK(GetInferredRegCategoryMap(ref) != NULL);
}
-const InferredRegCategoryMap*
+const greenland::InferredRegCategoryMap*
MethodVerifier::GetInferredRegCategoryMap(Compiler::MethodReference ref) {
MutexLock mu(*inferred_reg_category_maps_lock_);
diff --git a/src/verifier/method_verifier.h b/src/verifier/method_verifier.h
index 385326d..7eaf672 100644
--- a/src/verifier/method_verifier.h
+++ b/src/verifier/method_verifier.h
@@ -40,9 +40,9 @@
struct ReferenceMap2Visitor;
#if defined(ART_USE_LLVM_COMPILER) || defined(ART_USE_GREENLAND_COMPILER)
-namespace compiler_llvm {
+namespace greenland {
class InferredRegCategoryMap;
-} // namespace compiler_llvm
+} // namespace greenland
#endif
namespace verifier {
@@ -144,7 +144,7 @@
// The verifier
class MethodVerifier {
#if defined(ART_USE_LLVM_COMPILER) || defined(ART_USE_GREENLAND_COMPILER)
- typedef compiler_llvm::InferredRegCategoryMap InferredRegCategoryMap;
+ typedef greenland::InferredRegCategoryMap InferredRegCategoryMap;
#endif
public: