summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator_arm.cc
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2016-09-09 12:49:55 -0700
committerMathieu Chartier <mathieuc@google.com>2016-09-09 13:28:02 -0700
commite0576d15f3ad0e9316f96838af01f7cc7acf6c3c (patch)
treeabc6ce4677243c84a4c70ecd0240056f95e874fb /compiler/optimizing/code_generator_arm.cc
parent280764498fdba371f972301daa870e33bef31d6a (diff)
Re-enable boot image direct string loads for read barriers
Boot.oat code size with CC baker: ARM32: 70775656 -> 69817028 (-1.35%) ARM64: 80819424 -> 79417072 (-1.74%) X86 unmeasured. X86_64 unmeasured. Performance unmeasured, should be faster. Bug: 29516974 Test: test-art-host CC baker, N6P booting CC baker Change-Id: I219faaca9ed17af81d2815fb5e124120f307af83
Diffstat (limited to 'compiler/optimizing/code_generator_arm.cc')
-rw-r--r--compiler/optimizing/code_generator_arm.cc14
1 files changed, 0 insertions, 14 deletions
diff --git a/compiler/optimizing/code_generator_arm.cc b/compiler/optimizing/code_generator_arm.cc
index 3c4a3e8e18..e76190f3da 100644
--- a/compiler/optimizing/code_generator_arm.cc
+++ b/compiler/optimizing/code_generator_arm.cc
@@ -5422,17 +5422,6 @@ void InstructionCodeGeneratorARM::GenerateClassInitializationCheck(
HLoadString::LoadKind CodeGeneratorARM::GetSupportedLoadStringKind(
HLoadString::LoadKind desired_string_load_kind) {
- if (kEmitCompilerReadBarrier) {
- switch (desired_string_load_kind) {
- case HLoadString::LoadKind::kBootImageLinkTimeAddress:
- case HLoadString::LoadKind::kBootImageLinkTimePcRelative:
- case HLoadString::LoadKind::kBootImageAddress:
- // TODO: Implement for read barrier.
- return HLoadString::LoadKind::kDexCacheViaMethod;
- default:
- break;
- }
- }
switch (desired_string_load_kind) {
case HLoadString::LoadKind::kBootImageLinkTimeAddress:
DCHECK(!GetCompilerOptions().GetCompilePic());
@@ -5485,13 +5474,11 @@ void InstructionCodeGeneratorARM::VisitLoadString(HLoadString* load) {
switch (load_kind) {
case HLoadString::LoadKind::kBootImageLinkTimeAddress: {
- DCHECK(!kEmitCompilerReadBarrier);
__ LoadLiteral(out, codegen_->DeduplicateBootImageStringLiteral(load->GetDexFile(),
load->GetStringIndex()));
return; // No dex cache slow path.
}
case HLoadString::LoadKind::kBootImageLinkTimePcRelative: {
- DCHECK(!kEmitCompilerReadBarrier);
CodeGeneratorARM::PcRelativePatchInfo* labels =
codegen_->NewPcRelativeStringPatch(load->GetDexFile(), load->GetStringIndex());
__ BindTrackedLabel(&labels->movw_label);
@@ -5503,7 +5490,6 @@ void InstructionCodeGeneratorARM::VisitLoadString(HLoadString* load) {
return; // No dex cache slow path.
}
case HLoadString::LoadKind::kBootImageAddress: {
- DCHECK(!kEmitCompilerReadBarrier);
DCHECK_NE(load->GetAddress(), 0u);
uint32_t address = dchecked_integral_cast<uint32_t>(load->GetAddress());
__ LoadLiteral(out, codegen_->DeduplicateBootImageAddressLiteral(address));