Skip to content
Snippets Groups Projects
cfg.h 688 B
Newer Older
FlorianKrull's avatar
FlorianKrull committed
#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