summaryrefslogtreecommitdiff
path: root/compiler/optimizing/instruction_simplifier_arm64.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-10-27 11:05:27 +0200
committer VladimĂ­r Marko <vmarko@google.com> 2023-10-30 15:37:52 +0000
commitfe7f7aa33d085ed3097ab499277c63aafdfd0e5c (patch)
treee7c3b5dd11b3a9d459a70dd933d77cb76d48dae5 /compiler/optimizing/instruction_simplifier_arm64.cc
parent178e647cfc23649acd4340fb60ce4d0f5207a526 (diff)
Replace `gUseReadBarrier` with compiler option in compiler.
Leave a few `gUseReadBarrier` uses in JNI macro assemblers. We shall deaal with these later. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 289805127 Change-Id: I9d2aa245cee4c650129f169a82beda7dc0dd6a35
Diffstat (limited to 'compiler/optimizing/instruction_simplifier_arm64.cc')
-rw-r--r--compiler/optimizing/instruction_simplifier_arm64.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/compiler/optimizing/instruction_simplifier_arm64.cc b/compiler/optimizing/instruction_simplifier_arm64.cc
index 671900bd9d..2c191dc3f4 100644
--- a/compiler/optimizing/instruction_simplifier_arm64.cc
+++ b/compiler/optimizing/instruction_simplifier_arm64.cc
@@ -33,8 +33,9 @@ using helpers::ShifterOperandSupportsExtension;
class InstructionSimplifierArm64Visitor final : public HGraphVisitor {
public:
- InstructionSimplifierArm64Visitor(HGraph* graph, OptimizingCompilerStats* stats)
- : HGraphVisitor(graph), stats_(stats) {}
+ InstructionSimplifierArm64Visitor(
+ HGraph* graph, CodeGenerator* codegen, OptimizingCompilerStats* stats)
+ : HGraphVisitor(graph), codegen_(codegen), stats_(stats) {}
private:
void RecordSimplification() {
@@ -84,6 +85,7 @@ class InstructionSimplifierArm64Visitor final : public HGraphVisitor {
void VisitVecLoad(HVecLoad* instruction) override;
void VisitVecStore(HVecStore* instruction) override;
+ CodeGenerator* codegen_;
OptimizingCompilerStats* stats_;
};
@@ -198,7 +200,8 @@ void InstructionSimplifierArm64Visitor::VisitAnd(HAnd* instruction) {
void InstructionSimplifierArm64Visitor::VisitArrayGet(HArrayGet* instruction) {
size_t data_offset = CodeGenerator::GetArrayDataOffset(instruction);
- if (TryExtractArrayAccessAddress(instruction,
+ if (TryExtractArrayAccessAddress(codegen_,
+ instruction,
instruction->GetArray(),
instruction->GetIndex(),
data_offset)) {
@@ -209,7 +212,8 @@ void InstructionSimplifierArm64Visitor::VisitArrayGet(HArrayGet* instruction) {
void InstructionSimplifierArm64Visitor::VisitArraySet(HArraySet* instruction) {
size_t access_size = DataType::Size(instruction->GetComponentType());
size_t data_offset = mirror::Array::DataOffset(access_size).Uint32Value();
- if (TryExtractArrayAccessAddress(instruction,
+ if (TryExtractArrayAccessAddress(codegen_,
+ instruction,
instruction->GetArray(),
instruction->GetIndex(),
data_offset)) {
@@ -284,7 +288,7 @@ void InstructionSimplifierArm64Visitor::VisitVecLoad(HVecLoad* instruction) {
size_t size = DataType::Size(instruction->GetPackedType());
size_t offset = mirror::Array::DataOffset(size).Uint32Value();
if (TryExtractArrayAccessAddress(
- instruction, instruction->GetArray(), instruction->GetIndex(), offset)) {
+ codegen_, instruction, instruction->GetArray(), instruction->GetIndex(), offset)) {
RecordSimplification();
}
}
@@ -298,14 +302,14 @@ void InstructionSimplifierArm64Visitor::VisitVecStore(HVecStore* instruction) {
size_t size = DataType::Size(instruction->GetPackedType());
size_t offset = mirror::Array::DataOffset(size).Uint32Value();
if (TryExtractArrayAccessAddress(
- instruction, instruction->GetArray(), instruction->GetIndex(), offset)) {
+ codegen_, instruction, instruction->GetArray(), instruction->GetIndex(), offset)) {
RecordSimplification();
}
}
}
bool InstructionSimplifierArm64::Run() {
- InstructionSimplifierArm64Visitor visitor(graph_, stats_);
+ InstructionSimplifierArm64Visitor visitor(graph_, codegen_, stats_);
visitor.VisitReversePostOrder();
return true;
}