From 077188411c692f82b0785597fee030810a2a5841 Mon Sep 17 00:00:00 2001 From: Artem Serov Date: Mon, 24 Feb 2020 18:51:42 +0000 Subject: 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 --- compiler/optimizing/optimizing_compiler.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'compiler/optimizing/optimizing_compiler.cc') diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 02751cb83e..45d31bad79 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -118,6 +118,7 @@ class PassObserver : public ValueObject { visualizer_output_(visualizer_output), visualizer_enabled_(!compiler_options.GetDumpCfgFileName().empty()), visualizer_(&visualizer_oss_, graph, *codegen), + codegen_(codegen), visualizer_dump_mutex_(dump_mutex), graph_in_bad_state_(false) { if (timing_logger_enabled_ || visualizer_enabled_) { @@ -190,7 +191,7 @@ class PassObserver : public ValueObject { // Validate the HGraph if running in debug mode. if (kIsDebugBuild) { if (!graph_in_bad_state_) { - GraphChecker checker(graph_); + GraphChecker checker(graph_, codegen_); last_seen_graph_size_ = checker.Run(pass_change, last_seen_graph_size_); if (!checker.IsValid()) { LOG(FATAL) << "Error after " << pass_name << ": " << Dumpable(checker); @@ -230,6 +231,7 @@ class PassObserver : public ValueObject { std::ostream* visualizer_output_; bool visualizer_enabled_; HGraphVisualizer visualizer_; + CodeGenerator* codegen_; Mutex& visualizer_dump_mutex_; // Flag to be set by the compiler if the pass failed and the graph is not -- cgit v1.2.3-59-g8ed1b