intel/brw: Use brw_analysis prefix for performance analysis files

Move declaration to the common header and rename definition file.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33048>
This commit is contained in:
Caio Oliveira 2024-12-06 19:48:54 -08:00 committed by Marge Bot
parent 6a23749332
commit 0ebb75743d
5 changed files with 53 additions and 87 deletions

View file

@ -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);
};
}

View file

@ -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"

View file

@ -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);
};
}

View file

@ -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',