Otawa  0.10
Delta.h
Go to the documentation of this file.
1 /*
2  * BBTimeSimulator class interface
3  *
4  * This file is part of OTAWA
5  * Copyright (c) 2006-07, 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 Foobar; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef OTAWA_TSIM_DELTA_H
23 #define OTAWA_TSIM_DELTA_H
24 #include <otawa/tsim/BBPath.h>
25 #include <otawa/tsim/TreePath.h>
27 #include <otawa/proc/Feature.h>
28 
29 
30 namespace otawa {
31 
32 namespace ilp {
33  class System;
34 }
35 
36 namespace tsim {
37 
38 class BBPath;
39 class Delta;
40 
41 class Delta: public CFGProcessor {
42  int levels;
48  static int delta(BBPath &bbp, WorkSpace *fw);
49  void processBBPath(WorkSpace *fw, ilp::System *system, BBPath *bbpath);
50 
51 protected:
52  virtual void setup(WorkSpace *fw);
53  virtual void cleanup(WorkSpace *fw);
54  virtual void processCFG(WorkSpace* fw, CFG* cfg);
55 
56 public:
57  Delta(void);
59 
60  virtual void configure(const PropList& props);
61 
68 };
69 
70 // Features
72 
73 } } // otawa::tsim
74 
75 #endif /*OTAWA_IPET_TSIM_H*/
static Identifier< int > SEQ_COMPLETION
This identifier is used for storing the time for the first instruction to fetch after all instruction...
Definition: Delta.h:65
CFG * cfg(void) const
Get the current CFG.
Definition: CFGProcessor.h:56
static Identifier< TreePath< BasicBlock *, BBPath * > * > TREE
This identifier is used for storing in a BasicBlock a TreePath storing all BBPath starting from this ...
Definition: Delta.h:64
int max_length
Definition: Delta.h:45
static Identifier< double > MEAN_LENGTH
Property used to return statistics about the Delta processor about the mean sequence length in instru...
Definition: Delta.h:67
Definition: Registration.h:138
Control Flow Graph representation.
Definition: CFG.h:42
int levels
Definition: Delta.h:42
int completion
Definition: Delta.h:43
Definition: Delta.h:41
Delta(void)
Build a new delta calculator.
Definition: tsim_Delta.cpp:75
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
bool explicitNames
Definition: Delta.h:44
virtual void configure(const PropList &props)
Configures the delta calculator.
Definition: tsim_Delta.cpp:85
This is a specialization of the processor class dedicated to CFG processing.
Definition: CFGProcessor.h:35
static Identifier< double > MAX_LENGTH
Property used to return statistics about the Delta processor about the maximal sequence length in ins...
Definition: Delta.h:66
static Identifier< int > LEVELS
This identifier is used for forcing the depth of the Delta algorith.
Definition: Delta.h:62
Definition: BBPath.h:35
int length_sum
Definition: Delta.h:46
virtual void processCFG(WorkSpace *fw, CFG *cfg)
Process the given CFG.
Definition: tsim_Delta.cpp:176
Feature< Delta > DELTA_SEQUENCES_FEATURE
Feature ensure that sequences have been built to achieve the Delta interblock effect support...
This a list of properties.
Definition: PropList.h:63
virtual void cleanup(WorkSpace *fw)
This method is called after the end of the processor analysis to let it do some clean up...
Definition: tsim_Delta.cpp:104
int length_cnt
Definition: Delta.h:47
An ILP system is a colletion of ILP constraint that may maximize or minimize some object function...
Definition: System.h:42
static Registration< Delta > reg
Definition: Delta.h:58
static int delta(BBPath &bbp, WorkSpace *fw)
Calculate the delta of the given BBPath.
Definition: tsim_Delta.cpp:242
static Identifier< int > DELTA
This identifier is used for storing the delta value of a path.
Definition: Delta.h:63
virtual void setup(WorkSpace *fw)
This method is called before an anlysis to let the processor do some initialization.
Definition: tsim_Delta.cpp:95
A feature is a set of facilities, usually provided using properties, available on a framework...
Definition: Feature.h:46
void processBBPath(WorkSpace *fw, ilp::System *system, BBPath *bbpath)
Build the constraints for the given BB path.
Definition: tsim_Delta.cpp:120