diff --git a/src/intel/compiler/brw_analysis.h b/src/intel/compiler/brw_analysis.h index e5866a2df2a..f5908ff39cd 100644 --- a/src/intel/compiler/brw_analysis.h +++ b/src/intel/compiler/brw_analysis.h @@ -1,5 +1,5 @@ /* - * Copyright © 2010-2012 Intel Corporation + * Copyright © 2010-2020 Intel Corporation * SPDX-License-Identifier: MIT */ @@ -8,7 +8,6 @@ #include "brw_cfg.h" #include "brw_inst.h" #include "brw_ir_analysis.h" -#include "brw_ir_performance.h" #include "util/bitset.h" struct fs_visitor; @@ -199,4 +198,55 @@ namespace brw { const cfg_t *cfg; void *mem_ctx; }; + + /** + * Various estimates of the performance of a shader based on static + * analysis. + */ + struct performance { + performance(const fs_visitor *v); + ~performance(); + + analysis_dependency_class + dependency_class() const + { + return (DEPENDENCY_INSTRUCTIONS | + DEPENDENCY_BLOCKS); + } + + bool + validate(const fs_visitor *) const + { + return true; + } + + /** + * Array containing estimates of the runtime of each basic block of the + * program in cycle units. + */ + unsigned *block_latency; + + /** + * Estimate of the runtime of the whole program in cycle units assuming + * uncontended execution. + */ + unsigned latency; + + /** + * Estimate of the throughput of the whole program in + * invocations-per-cycle units. + * + * Note that this might be lower than the ratio between the dispatch + * width of the program and its latency estimate in cases where + * performance doesn't scale without limits as a function of its thread + * parallelism, e.g. due to the existence of a bottleneck in a shared + * function. + */ + float throughput; + + private: + performance(const performance &perf); + performance & + operator=(performance u); + }; } diff --git a/src/intel/compiler/brw_ir_performance.cpp b/src/intel/compiler/brw_analysis_performance.cpp similarity index 100% rename from src/intel/compiler/brw_ir_performance.cpp rename to src/intel/compiler/brw_analysis_performance.cpp diff --git a/src/intel/compiler/brw_fs.h b/src/intel/compiler/brw_fs.h index 6ee443fb6f6..5ce4b038862 100644 --- a/src/intel/compiler/brw_fs.h +++ b/src/intel/compiler/brw_fs.h @@ -32,7 +32,6 @@ #include "brw_compiler.h" #include "brw_inst.h" #include "brw_ir_allocator.h" -#include "brw_ir_performance.h" #include "compiler/nir/nir.h" #include "brw_analysis.h" diff --git a/src/intel/compiler/brw_ir_performance.h b/src/intel/compiler/brw_ir_performance.h deleted file mode 100644 index 2dbbcccec59..00000000000 --- a/src/intel/compiler/brw_ir_performance.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright © 2020 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#pragma once - -#include "brw_ir_analysis.h" - -struct fs_visitor; - -namespace brw { - /** - * Various estimates of the performance of a shader based on static - * analysis. - */ - struct performance { - performance(const fs_visitor *v); - ~performance(); - - analysis_dependency_class - dependency_class() const - { - return (DEPENDENCY_INSTRUCTIONS | - DEPENDENCY_BLOCKS); - } - - bool - validate(const fs_visitor *) const - { - return true; - } - - /** - * Array containing estimates of the runtime of each basic block of the - * program in cycle units. - */ - unsigned *block_latency; - - /** - * Estimate of the runtime of the whole program in cycle units assuming - * uncontended execution. - */ - unsigned latency; - - /** - * Estimate of the throughput of the whole program in - * invocations-per-cycle units. - * - * Note that this might be lower than the ratio between the dispatch - * width of the program and its latency estimate in cases where - * performance doesn't scale without limits as a function of its thread - * parallelism, e.g. due to the existence of a bottleneck in a shared - * function. - */ - float throughput; - - private: - performance(const performance &perf); - performance & - operator=(performance u); - }; -} diff --git a/src/intel/compiler/meson.build b/src/intel/compiler/meson.build index 6f065afb76f..e730f23e86b 100644 --- a/src/intel/compiler/meson.build +++ b/src/intel/compiler/meson.build @@ -24,6 +24,7 @@ libintel_compiler_brw_files = files( 'brw_analysis.h', 'brw_analysis_def.cpp', 'brw_analysis_liveness.cpp', + 'brw_analysis_performance.cpp', 'brw_builder.cpp', 'brw_builder.h', 'brw_cfg.cpp', @@ -60,8 +61,6 @@ libintel_compiler_brw_files = files( 'brw_inst.h', 'brw_ir_allocator.h', 'brw_ir_analysis.h', - 'brw_ir_performance.h', - 'brw_ir_performance.cpp', 'brw_isa_info.h', 'brw_lower.cpp', 'brw_lower_dpas.cpp',