Otawa  0.10
PCGBuilder.h
Go to the documentation of this file.
1 #ifndef OTAWA_TEST_PCG_PCGBUILDER_H
2 #define OTAWA_TEST_PCG_PCGBUILDER_H
3 
5 #include <otawa/cfg/CFGInfo.h>
6 #include <otawa/cfg.h>
7 #include <elm/genstruct/HashTable.h>
8 #include <otawa/proc/Feature.h>
9 
10 #include "PCG.h"
11 
12 namespace otawa{
13 
14 class PCGBuilder: public Processor
15 {
16  typedef struct stack_t {
17  struct stack_t *up;
18  CFG *cfg;
19  } stack_t;
20 
23 
24  void processCFGBlocks(BasicBlock *bb,CFG* cfg,PCG* pcg,PCGBlock *src);
25  PCG* buildPCG(CFG*cfg);
26  void addPCGBlock(BasicBlock*bb,CFG*cfg,PCG*pcg,CFG*src);
27 
28 protected:
29  virtual void processWorkSpace(WorkSpace *fw);
30  virtual void processCFG(CFG* cfg, PCG *pcg, CFG*src, stack_t *up);
31 
32 public:
33  PCGBuilder(void);
34 };
35 
36 // Features
38 
39 } // otawa
40 
41 #endif //OTAWA_TEST_PCG_PCGBUILDER_H
Definition: PCG.h:14
void processCFGBlocks(BasicBlock *bb, CFG *cfg, PCG *pcg, PCGBlock *src)
PCGBuilder(void)
Definition: PCGBuilder.cpp:133
elm::genstruct::HashTable< void *, PCGBlock * > mapCFG
Definition: PCGBuilder.h:21
Feature< PCGBuilder > PCG_FEATURE
This feature ensure that a PCG is provided.
PCG * buildPCG(CFG *cfg)
Definition: PCGBuilder.cpp:31
dtd::Element bb(dtd::make("bb", _BB).attr(id).attr(address).attr(size))
Control Flow Graph representation.
Definition: CFG.h:42
virtual void processWorkSpace(WorkSpace *fw)
Process the given framework.
Definition: PCGBuilder.cpp:141
elm::genstruct::HashTable< void *, PCGBlock * > mapBB
Definition: PCGBuilder.h:22
Definition: PCGBuilder.h:14
The processor class is implemented by all code processor.
Definition: Processor.h:49
CFG * cfg
Definition: PCGBuilder.h:18
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
Definition: PCGBlock.h:10
struct stack_t * up
Definition: PCGBuilder.h:17
virtual void processCFG(CFG *cfg, PCG *pcg, CFG *src, stack_t *up)
Definition: PCGBuilder.cpp:66
dtd::Element cfg(dtd::make("cfg", _CFG).attr(id).content((entry,*bb, exit,*edge)))
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
Definition: PCGBuilder.h:16
struct otawa::PCGBuilder::stack_t stack_t
void addPCGBlock(BasicBlock *bb, CFG *cfg, PCG *pcg, CFG *src)
Definition: PCGBuilder.cpp:96
A feature is a set of facilities, usually provided using properties, available on a framework...
Definition: Feature.h:46