Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef _GFG_H_
#define _GFG_H_
#include "mcc/tac_build.h"
#include "mcc/tac.h"
#include "mcc/symbol_table.h"
struct mcc_cfg {
int block_size;
struct mcc_cfg_basic_block *basic;
struct mcc_cfg *next;
};
struct mcc_cfg_edge {
struct mcc_cfg_basic_block *destination;
struct mcc_cfg_edge *next;
};
struct mcc_cfg_basic_block {
int id;
struct mcc_tac_entry *start;
struct mcc_tac_entry *end;
struct mcc_cfg_edge *incoming;
struct mcc_cfg_edge *outgoing;
struct mcc_cfg_basic_block *next;
};
struct mcc_cfg *mcc_create_cfg(struct mcc_tac *tac);
struct mcc_cfg_basic_block *mcc_create_cfg_basic_block(struct mcc_tac *tac);
#endif