mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
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:
parent
6a23749332
commit
0ebb75743d
5 changed files with 53 additions and 87 deletions
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue