diff options
author | 2020-02-24 18:51:42 +0000 | |
---|---|---|
committer | 2020-06-09 13:11:45 +0000 | |
commit | 077188411c692f82b0785597fee030810a2a5841 (patch) | |
tree | f74ced58d91dcb215601175dc7d29854d46aee0d /compiler/optimizing/graph_checker.h | |
parent | 1715efa0b46d57d587237829d1c0695aaca2c344 (diff) |
ART: Introduce predicated vector instructions.
This CL introduces a minimal changes to the IR to support
autovectorization with use of predicated execution of SIMD
instructions (e.g. Arm SVE).
Test: test-art-target, test-art-host.
Change-Id: Ibb7c5520fec6b858fb29f0dde19ec65501831a3a
Diffstat (limited to 'compiler/optimizing/graph_checker.h')
-rw-r--r-- | compiler/optimizing/graph_checker.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/compiler/optimizing/graph_checker.h b/compiler/optimizing/graph_checker.h index 564b1377ec..04c8d2103c 100644 --- a/compiler/optimizing/graph_checker.h +++ b/compiler/optimizing/graph_checker.h @@ -26,15 +26,20 @@ namespace art { +class CodeGenerator; + // A control-flow graph visitor performing various checks. class GraphChecker : public HGraphDelegateVisitor { public: - explicit GraphChecker(HGraph* graph, const char* dump_prefix = "art::GraphChecker: ") + explicit GraphChecker(HGraph* graph, + CodeGenerator* codegen = nullptr, + const char* dump_prefix = "art::GraphChecker: ") : HGraphDelegateVisitor(graph), errors_(graph->GetAllocator()->Adapter(kArenaAllocGraphChecker)), dump_prefix_(dump_prefix), allocator_(graph->GetArenaStack()), - seen_ids_(&allocator_, graph->GetCurrentInstructionId(), false, kArenaAllocGraphChecker) { + seen_ids_(&allocator_, graph->GetCurrentInstructionId(), false, kArenaAllocGraphChecker), + codegen_(codegen) { seen_ids_.ClearAllBits(); } @@ -69,6 +74,8 @@ class GraphChecker : public HGraphDelegateVisitor { void VisitTryBoundary(HTryBoundary* try_boundary) override; void VisitTypeConversion(HTypeConversion* instruction) override; + void VisitVecOperation(HVecOperation* instruction) override; + void CheckTypeCheckBitstringInput(HTypeCheckInstruction* check, size_t input_pos, bool check_value, @@ -125,6 +132,9 @@ class GraphChecker : public HGraphDelegateVisitor { // The default value is true. bool check_reference_type_info_ = true; + // Used to access target information. + CodeGenerator* codegen_; + DISALLOW_COPY_AND_ASSIGN(GraphChecker); }; |