mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-17 17:55:28 +03:00
ng_extparam: split up work and do per-comp reduce
This change breaks extparam processing up into: - propagateExtendedParams: propagates min_length, min_offset and max_offset into the reports on the graph - reduceExtendedParams: runs graph reductions based on extparams Then, we apply the reduce pass to the whole graph, and later as well to each component after calc_components.
This commit is contained in:
committed by
Matthew Barr
parent
0a163b5535
commit
a871f70c25
@@ -34,15 +34,30 @@
|
||||
#ifndef NG_EXTPARAM_H
|
||||
#define NG_EXTPARAM_H
|
||||
|
||||
#include "som/som.h"
|
||||
|
||||
namespace ue2 {
|
||||
|
||||
struct CompileContext;
|
||||
class ExpressionInfo;
|
||||
class NGHolder;
|
||||
class ReportManager;
|
||||
|
||||
void handleExtendedParams(ReportManager &rm, NGHolder &g, ExpressionInfo &expr,
|
||||
const CompileContext &cc);
|
||||
/**
|
||||
* \brief Propagate extended parameter information to vertex reports. Will
|
||||
* throw CompileError if this expression's extended parameters are not
|
||||
* satisfiable.
|
||||
*
|
||||
* This will also remove extended parameter constraints that are guaranteed to
|
||||
* be satisfied from ExpressionInfo.
|
||||
*/
|
||||
void propagateExtendedParams(NGHolder &g, ExpressionInfo &expr,
|
||||
ReportManager &rm);
|
||||
|
||||
/**
|
||||
* \brief Perform graph reductions (if possible) to do with extended parameter
|
||||
* constraints on reports.
|
||||
*/
|
||||
void reduceExtendedParams(NGHolder &g, ReportManager &rm, som_type som);
|
||||
|
||||
} // namespace ue2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user