summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-04-05 09:43:21 +0200
committer Vladimir Marko <vmarko@google.com> 2023-04-05 09:48:42 +0200
commit30759fafda169202ffa03a9373894f6b7c19079c (patch)
tree8ad1878092726e094226c25b4cf3affffa9c56de
parenta7ad4d81babac2c423b50d8c9f9f5fd51a09db78 (diff)
Mark graph visitor classes as final.
This should improve optimization opportunities for clang++. Test: buildbot-build.sh Change-Id: Ib0c1ebfb157176a9063cca2ed465cff6fb280442
-rw-r--r--compiler/optimizing/bounds_check_elimination.cc2
-rw-r--r--compiler/optimizing/constant_folding.cc2
-rw-r--r--compiler/optimizing/constructor_fence_redundancy_elimination.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier_arm.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier_arm64.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier_x86.cc2
-rw-r--r--compiler/optimizing/instruction_simplifier_x86_64.cc2
-rw-r--r--compiler/optimizing/nodes.h2
-rw-r--r--compiler/optimizing/optimizing_unit_test.h2
-rw-r--r--compiler/optimizing/pc_relative_fixups_x86.cc2
-rw-r--r--compiler/optimizing/reference_type_propagation.cc2
-rw-r--r--compiler/optimizing/scheduler_arm.h2
-rw-r--r--compiler/optimizing/scheduler_arm64.h2
-rw-r--r--compiler/optimizing/write_barrier_elimination.cc2
-rw-r--r--compiler/optimizing/x86_memory_gen.cc2
16 files changed, 16 insertions, 16 deletions
diff --git a/compiler/optimizing/bounds_check_elimination.cc b/compiler/optimizing/bounds_check_elimination.cc
index 210f978cc2..919abfdc49 100644
--- a/compiler/optimizing/bounds_check_elimination.cc
+++ b/compiler/optimizing/bounds_check_elimination.cc
@@ -490,7 +490,7 @@ class MonotonicValueRange : public ValueRange {
DISALLOW_COPY_AND_ASSIGN(MonotonicValueRange);
};
-class BCEVisitor : public HGraphVisitor {
+class BCEVisitor final : public HGraphVisitor {
public:
// The least number of bounds checks that should be eliminated by triggering
// the deoptimization technique.
diff --git a/compiler/optimizing/constant_folding.cc b/compiler/optimizing/constant_folding.cc
index b737fb396f..b8ffe9efdd 100644
--- a/compiler/optimizing/constant_folding.cc
+++ b/compiler/optimizing/constant_folding.cc
@@ -26,7 +26,7 @@ namespace art HIDDEN {
// This visitor tries to simplify instructions that can be evaluated
// as constants.
-class HConstantFoldingVisitor : public HGraphDelegateVisitor {
+class HConstantFoldingVisitor final : public HGraphDelegateVisitor {
public:
explicit HConstantFoldingVisitor(HGraph* graph, OptimizingCompilerStats* stats)
: HGraphDelegateVisitor(graph, stats) {}
diff --git a/compiler/optimizing/constructor_fence_redundancy_elimination.cc b/compiler/optimizing/constructor_fence_redundancy_elimination.cc
index 66ec377f0a..d9b7652f32 100644
--- a/compiler/optimizing/constructor_fence_redundancy_elimination.cc
+++ b/compiler/optimizing/constructor_fence_redundancy_elimination.cc
@@ -25,7 +25,7 @@ namespace art HIDDEN {
static constexpr bool kCfreLogFenceInputCount = false;
// TODO: refactor this code by reusing escape analysis.
-class CFREVisitor : public HGraphVisitor {
+class CFREVisitor final : public HGraphVisitor {
public:
CFREVisitor(HGraph* graph, OptimizingCompilerStats* stats)
: HGraphVisitor(graph),
diff --git a/compiler/optimizing/instruction_simplifier.cc b/compiler/optimizing/instruction_simplifier.cc
index b772fbbbb6..bf51b5dcf4 100644
--- a/compiler/optimizing/instruction_simplifier.cc
+++ b/compiler/optimizing/instruction_simplifier.cc
@@ -37,7 +37,7 @@ namespace art HIDDEN {
// is replaced with its copy if it is clonable.
static constexpr bool kTestInstructionClonerExhaustively = false;
-class InstructionSimplifierVisitor : public HGraphDelegateVisitor {
+class InstructionSimplifierVisitor final : public HGraphDelegateVisitor {
public:
InstructionSimplifierVisitor(HGraph* graph,
CodeGenerator* codegen,
diff --git a/compiler/optimizing/instruction_simplifier_arm.cc b/compiler/optimizing/instruction_simplifier_arm.cc
index 88895b68a3..05a518d544 100644
--- a/compiler/optimizing/instruction_simplifier_arm.cc
+++ b/compiler/optimizing/instruction_simplifier_arm.cc
@@ -31,7 +31,7 @@ using helpers::IsSubRightSubLeftShl;
namespace arm {
-class InstructionSimplifierArmVisitor : public HGraphVisitor {
+class InstructionSimplifierArmVisitor final : public HGraphVisitor {
public:
InstructionSimplifierArmVisitor(HGraph* graph, OptimizingCompilerStats* stats)
: HGraphVisitor(graph), stats_(stats) {}
diff --git a/compiler/optimizing/instruction_simplifier_arm64.cc b/compiler/optimizing/instruction_simplifier_arm64.cc
index bed7ff7d55..671900bd9d 100644
--- a/compiler/optimizing/instruction_simplifier_arm64.cc
+++ b/compiler/optimizing/instruction_simplifier_arm64.cc
@@ -31,7 +31,7 @@ namespace arm64 {
using helpers::ShifterOperandSupportsExtension;
-class InstructionSimplifierArm64Visitor : public HGraphVisitor {
+class InstructionSimplifierArm64Visitor final : public HGraphVisitor {
public:
InstructionSimplifierArm64Visitor(HGraph* graph, OptimizingCompilerStats* stats)
: HGraphVisitor(graph), stats_(stats) {}
diff --git a/compiler/optimizing/instruction_simplifier_x86.cc b/compiler/optimizing/instruction_simplifier_x86.cc
index 805dd49644..5a4345d589 100644
--- a/compiler/optimizing/instruction_simplifier_x86.cc
+++ b/compiler/optimizing/instruction_simplifier_x86.cc
@@ -21,7 +21,7 @@ namespace art HIDDEN {
namespace x86 {
-class InstructionSimplifierX86Visitor : public HGraphVisitor {
+class InstructionSimplifierX86Visitor final : public HGraphVisitor {
public:
InstructionSimplifierX86Visitor(HGraph* graph,
CodeGenerator* codegen,
diff --git a/compiler/optimizing/instruction_simplifier_x86_64.cc b/compiler/optimizing/instruction_simplifier_x86_64.cc
index b783918879..9ba1a8a960 100644
--- a/compiler/optimizing/instruction_simplifier_x86_64.cc
+++ b/compiler/optimizing/instruction_simplifier_x86_64.cc
@@ -21,7 +21,7 @@ namespace art HIDDEN {
namespace x86_64 {
-class InstructionSimplifierX86_64Visitor : public HGraphVisitor {
+class InstructionSimplifierX86_64Visitor final : public HGraphVisitor {
public:
InstructionSimplifierX86_64Visitor(HGraph* graph,
CodeGenerator* codegen,
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 965ee90036..fc5d2196da 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -8591,7 +8591,7 @@ HInstruction* ReplaceInstrOrPhiByClone(HInstruction* instr);
// Create a clone for each clonable instructions/phis and replace the original with the clone.
//
// Used for testing individual instruction cloner.
-class CloneAndReplaceInstructionVisitor : public HGraphDelegateVisitor {
+class CloneAndReplaceInstructionVisitor final : public HGraphDelegateVisitor {
public:
explicit CloneAndReplaceInstructionVisitor(HGraph* graph)
: HGraphDelegateVisitor(graph), instr_replaced_by_clones_count_(0) {}
diff --git a/compiler/optimizing/optimizing_unit_test.h b/compiler/optimizing/optimizing_unit_test.h
index d0df4b89e5..f18ffc7f83 100644
--- a/compiler/optimizing/optimizing_unit_test.h
+++ b/compiler/optimizing/optimizing_unit_test.h
@@ -573,7 +573,7 @@ inline std::ostream& operator<<(std::ostream& oss, const AdjacencyListGraph& alg
return alg.Dump(oss);
}
-class PatternMatchGraphVisitor : public HGraphVisitor {
+class PatternMatchGraphVisitor final : public HGraphVisitor {
private:
struct HandlerWrapper {
public:
diff --git a/compiler/optimizing/pc_relative_fixups_x86.cc b/compiler/optimizing/pc_relative_fixups_x86.cc
index b7e773f541..d3da3d3ce1 100644
--- a/compiler/optimizing/pc_relative_fixups_x86.cc
+++ b/compiler/optimizing/pc_relative_fixups_x86.cc
@@ -24,7 +24,7 @@ namespace x86 {
/**
* Finds instructions that need the constant area base as an input.
*/
-class PCRelativeHandlerVisitor : public HGraphVisitor {
+class PCRelativeHandlerVisitor final : public HGraphVisitor {
public:
PCRelativeHandlerVisitor(HGraph* graph, CodeGenerator* codegen)
: HGraphVisitor(graph),
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc
index 74e295e70f..91bae5f49b 100644
--- a/compiler/optimizing/reference_type_propagation.cc
+++ b/compiler/optimizing/reference_type_propagation.cc
@@ -41,7 +41,7 @@ static inline ObjPtr<mirror::DexCache> FindDexCacheWithHint(
}
}
-class ReferenceTypePropagation::RTPVisitor : public HGraphDelegateVisitor {
+class ReferenceTypePropagation::RTPVisitor final : public HGraphDelegateVisitor {
public:
RTPVisitor(HGraph* graph, Handle<mirror::DexCache> hint_dex_cache, bool is_first_run)
: HGraphDelegateVisitor(graph),
diff --git a/compiler/optimizing/scheduler_arm.h b/compiler/optimizing/scheduler_arm.h
index 73103df971..0da21c187f 100644
--- a/compiler/optimizing/scheduler_arm.h
+++ b/compiler/optimizing/scheduler_arm.h
@@ -47,7 +47,7 @@ static constexpr uint32_t kArmNopLatency = 2;
static constexpr uint32_t kArmLoadWithBakerReadBarrierLatency = 18;
static constexpr uint32_t kArmRuntimeTypeCheckLatency = 46;
-class SchedulingLatencyVisitorARM : public SchedulingLatencyVisitor {
+class SchedulingLatencyVisitorARM final : public SchedulingLatencyVisitor {
public:
explicit SchedulingLatencyVisitorARM(CodeGenerator* codegen)
: codegen_(down_cast<CodeGeneratorARMVIXL*>(codegen)) {}
diff --git a/compiler/optimizing/scheduler_arm64.h b/compiler/optimizing/scheduler_arm64.h
index 420f5583ec..ec41577e9d 100644
--- a/compiler/optimizing/scheduler_arm64.h
+++ b/compiler/optimizing/scheduler_arm64.h
@@ -56,7 +56,7 @@ static constexpr uint32_t kArm64SIMDDivDoubleLatency = 60;
static constexpr uint32_t kArm64SIMDDivFloatLatency = 30;
static constexpr uint32_t kArm64SIMDTypeConversionInt2FPLatency = 10;
-class SchedulingLatencyVisitorARM64 : public SchedulingLatencyVisitor {
+class SchedulingLatencyVisitorARM64 final : public SchedulingLatencyVisitor {
public:
// Default visitor for instructions not handled specifically below.
void VisitInstruction(HInstruction* ATTRIBUTE_UNUSED) override {
diff --git a/compiler/optimizing/write_barrier_elimination.cc b/compiler/optimizing/write_barrier_elimination.cc
index 9023cc24b7..eb70b670fe 100644
--- a/compiler/optimizing/write_barrier_elimination.cc
+++ b/compiler/optimizing/write_barrier_elimination.cc
@@ -23,7 +23,7 @@
namespace art HIDDEN {
-class WBEVisitor : public HGraphVisitor {
+class WBEVisitor final : public HGraphVisitor {
public:
WBEVisitor(HGraph* graph, OptimizingCompilerStats* stats)
: HGraphVisitor(graph),
diff --git a/compiler/optimizing/x86_memory_gen.cc b/compiler/optimizing/x86_memory_gen.cc
index 82652142a7..e266618980 100644
--- a/compiler/optimizing/x86_memory_gen.cc
+++ b/compiler/optimizing/x86_memory_gen.cc
@@ -24,7 +24,7 @@ namespace x86 {
/**
* Replace instructions with memory operand forms.
*/
-class MemoryOperandVisitor : public HGraphVisitor {
+class MemoryOperandVisitor final : public HGraphVisitor {
public:
MemoryOperandVisitor(HGraph* graph, bool do_implicit_null_checks)
: HGraphVisitor(graph),