Otawa  0.10
features.h
Go to the documentation of this file.
1 /*
2  * Features for the IPET module.
3  *
4  * This file is part of OTAWA
5  * Copyright (c) 2005-13, IRIT UPS.
6  *
7  * OTAWA is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * OTAWA is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with OTAWA; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 #ifndef OTAWA_IPET_FEATURES_H
22 #define OTAWA_IPET_FEATURES_H
23 
24 #include <otawa/prop/Identifier.h>
27 #include <otawa/prog/WorkSpace.h>
28 
29 namespace otawa {
30 
31 // External classes
32 class WorkSpace;
33 class CFG;
34 class BasicBlock;
35 class Edge;
36 namespace ilp {
37  class Constraint;
38  class System;
39  class Var;
40 }
41 
42 namespace ipet {
43 
44 // Common configuration
45 extern Identifier<bool> EXPLICIT;
46 extern Identifier<string> ILP_PLUGIN_NAME;
47 
48 // Features
49 extern Feature<NoProcessor> INTERBLOCK_SUPPORT_FEATURE;
50 
51 extern SilentFeature BB_TIME_FEATURE;
52 extern Identifier<ot::time> TIME;
53 extern Identifier<ot::time> TIME_DELTA;
54 
55 extern Identifier<int> COUNT;
56 
57 extern SilentFeature ASSIGNED_VARS_FEATURE;
58 extern Identifier<ilp::Var *> VAR;
59 
60 extern SilentFeature WCET_FEATURE;
61 extern Identifier<ot::time> WCET;
62 
63 extern SilentFeature OBJECT_FUNCTION_FEATURE;
64 
65 extern p::feature CONTROL_CONSTRAINTS_FEATURE;
66 extern Identifier<otawa::ilp::Constraint *> CALLING_CONSTRAINT;
67 
68 extern SilentFeature FLOW_FACTS_CONSTRAINTS_FEATURE;
69 
70 extern SilentFeature FLOW_FACTS_FEATURE;
71 
72 extern SilentFeature ILP_SYSTEM_FEATURE;
73 extern Identifier<ilp::System *> SYSTEM;
74 
75 extern p::feature DATA_CACHE_SUPPORT_FEATURE;
76 extern p::feature INST_CACHE_SUPPORT_FEATURE;
77 extern p::feature CACHE_SUPPORT_FEATURE;
78 
79 extern p::feature WCET_COUNT_RECORDED_FEATURE;
80 
81 } } // otawa::ipet
82 
83 #endif // OTAWA_IPET_FEATURES_H
SilentFeature ILP_SYSTEM_FEATURE
This feature assert that an ILP is available for IPET computation.
SilentFeature FLOW_FACTS_CONSTRAINTS_FEATURE
This feature asserts that constraints tied to the flow fact information has been added to the ILP sys...
Feature< NoProcessor > INTERBLOCK_SUPPORT_FEATURE
This feature ensures that effects of the inter-block have been modelized in the current ILP system...
Identifier< string > ILP_PLUGIN_NAME
Select the name of the plugin to use as the ILP solver.
p::feature WCET_COUNT_RECORDED_FEATURE
This feature asserts that WCET execution count of basic block and of edge have been recorded...
Identifier< ot::time > TIME_DELTA
This property is used to store time delta on edges.
Identifier< ilp::System * > SYSTEM
Link the curerently ILP system.
p::feature INST_CACHE_SUPPORT_FEATURE
This feature ensurers that the instruction cache has been modelled in the IPET approach.
SilentFeature OBJECT_FUNCTION_FEATURE
This feature ensures that the object function of the ILP system to solve has been built...
p::feature CACHE_SUPPORT_FEATURE
This feature ensures that analysis for the cache configuration has been performed.
p::feature DATA_CACHE_SUPPORT_FEATURE
This feature ensures that the first-level data cache has been taken in account in the basic block tim...
Identifier< otawa::ilp::Constraint * > CALLING_CONSTRAINT
Used to record the constraint of a called CFG.
p::feature CONTROL_CONSTRAINTS_FEATURE
This feature ensures that control constraints has been added to the current ILP system.
SilentFeature ASSIGNED_VARS_FEATURE
This feature asserts that each block and each edge has a variable name asserted.
Identifier< ot::time > TIME
This identifier is used for storing the time of execution in cycles (int) of the program area it appl...
Identifier< ilp::Var * > VAR
This identifier is used for storing in basic blocks and edges the variables (otawa::ilp::Var *) used ...
SilentFeature WCET_FEATURE
This feature ensures that the WCET has been computed using IPET approach.
Identifier< ot::time > WCET
Identifier of annotation used for storing for storing the WCET value (int) in the CFG of the computed...
Identifier< int > COUNT
This property is put on basic blocks and edge to record the execution count of these object on the WC...
Identifier< bool > EXPLICIT
Identifier of a boolean property requiring that explicit names must be used.
SilentFeature BB_TIME_FEATURE
This feature ensures that the execution time of each basic block has been computed.
SilentFeature FLOW_FACTS_FEATURE
This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of...