summaryrefslogtreecommitdiff
path: root/compiler/optimizing/instruction_simplifier_x86.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2024-09-10 21:25:15 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2024-09-11 09:29:15 +0000
commit744830cb242c82c4637e6fb303b36d0371c84979 (patch)
tree843d73b277fb4057fa63f4dcf232640e0e688bce /compiler/optimizing/instruction_simplifier_x86.cc
parent88c7e963f7861a1b92742150010ca7253f10023f (diff)
Revert "riscv64: Add node Rol, fix InstructionBuilder"
This reverts commit 39927bc359ccbe65371213c4559126b05dcfb117. Reason for revert: Failure on bot with: error: Statement could not be matched starting from line 1089612 TestRotate.java:95: rol {{a\d+}}, {{a\d+}}, {{a\d+}} ISA_FEATURES = {'rv64gcv_zba_zbb_zbs': True} READ_BARRIER_TYPE = baker 567-checker-builder-intrinsics FAILED: [run-test:1074] CFG checker failed $ ssh -q -F /b/s/w/ir/cache/builder/art/test/testrunner/ssh_config -p 10001 ubuntu@localhost "rm -rf /home/ubuntu/art-test-chroot/data/run-test/test-343039" 567-checker-builder-intrinsics files deleted from host and from target ---------- test-art-target-run-test-ndebug-prebuild-optimizing-no-relocate-ntrace-cms-checkjni-picimage-ndebuggable-no-jvmti-567-checker-builder-intrinsics64 Change-Id: Ic1fd87c331c9eba315af6c98c3ad393766327417
Diffstat (limited to 'compiler/optimizing/instruction_simplifier_x86.cc')
-rw-r--r--compiler/optimizing/instruction_simplifier_x86.cc31
1 files changed, 5 insertions, 26 deletions
diff --git a/compiler/optimizing/instruction_simplifier_x86.cc b/compiler/optimizing/instruction_simplifier_x86.cc
index e1c783e5b8..5a4345d589 100644
--- a/compiler/optimizing/instruction_simplifier_x86.cc
+++ b/compiler/optimizing/instruction_simplifier_x86.cc
@@ -48,7 +48,6 @@ class InstructionSimplifierX86Visitor final : public HGraphVisitor {
}
void VisitAnd(HAnd * instruction) override;
- void VisitRol(HRol* instruction) override;
void VisitXor(HXor* instruction) override;
private:
@@ -58,10 +57,6 @@ class InstructionSimplifierX86Visitor final : public HGraphVisitor {
void InstructionSimplifierX86Visitor::VisitAnd(HAnd* instruction) {
- if (!HasAVX2()) {
- return;
- }
-
if (TryCombineAndNot(instruction)) {
RecordSimplification();
} else if (instruction->GetResultType() == DataType::Type::kInt32) {
@@ -71,26 +66,7 @@ void InstructionSimplifierX86Visitor::VisitAnd(HAnd* instruction) {
}
}
-void InstructionSimplifierX86Visitor::VisitRol(HRol* rol) {
- if (rol->GetType() != DataType::Type::kInt64) {
- return;
- }
-
- HBasicBlock* block = rol->GetBlock();
- HGraph* graph = block->GetGraph();
- ArenaAllocator* allocator = graph->GetAllocator();
-
- HNeg* neg = new (allocator) HNeg(DataType::Type::kInt32, rol->GetRight());
- block->InsertInstructionBefore(neg, rol);
- HRor* ror = new (allocator) HRor(rol->GetType(), rol->GetLeft(), neg);
- block->ReplaceAndRemoveInstructionWith(rol, ror);
-}
-
void InstructionSimplifierX86Visitor::VisitXor(HXor* instruction) {
- if (!HasAVX2()) {
- return;
- }
-
if (instruction->GetResultType() == DataType::Type::kInt32) {
if (TryGenerateMaskUptoLeastSetBit(instruction)) {
RecordSimplification();
@@ -100,8 +76,11 @@ void InstructionSimplifierX86Visitor::VisitXor(HXor* instruction) {
bool InstructionSimplifierX86::Run() {
InstructionSimplifierX86Visitor visitor(graph_, codegen_, stats_);
- visitor.VisitReversePostOrder();
- return true;
+ if (visitor.HasAVX2()) {
+ visitor.VisitReversePostOrder();
+ return true;
+ }
+ return false;
}
} // namespace x86