summaryrefslogtreecommitdiff
path: root/src/compiler_llvm/method_compiler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler_llvm/method_compiler.cc')
-rw-r--r--src/compiler_llvm/method_compiler.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler_llvm/method_compiler.cc b/src/compiler_llvm/method_compiler.cc
index 193f570f4f..d61c913524 100644
--- a/src/compiler_llvm/method_compiler.cc
+++ b/src/compiler_llvm/method_compiler.cc
@@ -1866,7 +1866,7 @@ void MethodCompiler::EmitInsn_FilledNewArray(uint32_t dex_pc,
reg_value = EmitLoadDalvikReg(reg_index, kObject, kAccurate);
}
- irb_.CreateStore(reg_value, data_field_addr, kTBAAMemory);
+ irb_.CreateStore(reg_value, data_field_addr, kTBAAHeapArray);
data_field_addr =
irb_.CreatePtrDisp(data_field_addr, elem_size, field_type);
@@ -2283,7 +2283,7 @@ void MethodCompiler::EmitInsn_AGet(uint32_t dex_pc,
llvm::Value* array_elem_addr =
EmitArrayGEP(array_addr, index_value, elem_type, elem_jty);
- llvm::Value* array_elem_value = irb_.CreateLoad(array_elem_addr, kTBAAMemory);
+ llvm::Value* array_elem_value = irb_.CreateLoad(array_elem_addr, kTBAAHeapArray, elem_jty);
EmitStoreDalvikReg(dec_insn.vA, elem_jty, kArray, array_elem_value);
@@ -2319,7 +2319,7 @@ void MethodCompiler::EmitInsn_APut(uint32_t dex_pc,
EmitMarkGCCard(new_value, array_addr);
}
- irb_.CreateStore(new_value, array_elem_addr, kTBAAMemory);
+ irb_.CreateStore(new_value, array_elem_addr, kTBAAHeapArray, elem_jty);
irb_.CreateBr(GetNextBasicBlock(dex_pc));
}
@@ -2380,7 +2380,7 @@ void MethodCompiler::EmitInsn_IGet(uint32_t dex_pc,
// TODO: Check is_volatile. We need to generate atomic load instruction
// when is_volatile is true.
- field_value = irb_.CreateLoad(field_addr, kTBAAMemory);
+ field_value = irb_.CreateLoad(field_addr, kTBAAHeapInstance, field_jty);
}
EmitStoreDalvikReg(dec_insn.vA, field_jty, kField, field_value);
@@ -2444,7 +2444,7 @@ void MethodCompiler::EmitInsn_IPut(uint32_t dex_pc,
// TODO: Check is_volatile. We need to generate atomic store instruction
// when is_volatile is true.
- irb_.CreateStore(new_value, field_addr, kTBAAMemory);
+ irb_.CreateStore(new_value, field_addr, kTBAAHeapInstance, field_jty);
if (field_jty == kObject) { // If put an object, mark the GC card table.
EmitMarkGCCard(new_value, object_addr);
@@ -2581,7 +2581,7 @@ void MethodCompiler::EmitInsn_SGet(uint32_t dex_pc,
// TODO: Check is_volatile. We need to generate atomic load instruction
// when is_volatile is true.
- static_field_value = irb_.CreateLoad(static_field_addr, kTBAAMemory);
+ static_field_value = irb_.CreateLoad(static_field_addr, kTBAAHeapStatic, field_jty);
}
EmitStoreDalvikReg(dec_insn.vA, field_jty, kField, static_field_value);
@@ -2660,7 +2660,7 @@ void MethodCompiler::EmitInsn_SPut(uint32_t dex_pc,
// TODO: Check is_volatile. We need to generate atomic store instruction
// when is_volatile is true.
- irb_.CreateStore(new_value, static_field_addr, kTBAAMemory);
+ irb_.CreateStore(new_value, static_field_addr, kTBAAHeapStatic, field_jty);
if (field_jty == kObject) { // If put an object, mark the GC card table.
EmitMarkGCCard(new_value, static_storage_addr);