diff options
Diffstat (limited to 'src/analysis/block.h')
-rw-r--r-- | src/analysis/block.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/analysis/block.h b/src/analysis/block.h index 9e136a3..a85e4aa 100644 --- a/src/analysis/block.h +++ b/src/analysis/block.h @@ -79,9 +79,25 @@ typedef struct _GInstrBlock GInstrBlock; typedef struct _GInstrBlockClass GInstrBlockClass; +/* Position au cours d'une visite */ +typedef enum _BlockVisitOrder +{ + BVO_IN, /* Entrée dans un gros bloc */ + BVO_PENDING, /* Visite d'un bloc simple */ + BVO_OUT /* Sortie d'un gros bloc */ + +} BlockVisitOrder; + +/* Rappel à chaque bloc visité */ +typedef bool (* instr_block_visitor_cb) (GInstrBlock *, BlockVisitOrder, void *); + + /* Indique le type défini pour un bloc d'instructions. */ GType g_instr_block_get_type(void); +/* Parcours tous les blocs d'instructions dans un ordre donné. */ +bool g_instr_block_visit(GInstrBlock *, instr_block_visitor_cb, void *); + /* Etablit la liste de tous les blocs présents. */ void g_instr_block_list_all_blocks(const GInstrBlock *, GInstrBlock ***, size_t *); |