9 /* Silly pseudo define. Do this right some day */
14 static inline pseudo_t
to_pseudo(int nr
)
21 #define VOID (to_pseudo(0))
29 struct symbol
*orig_type
; /* casts */
35 struct /* multijump */ {
38 struct expression
*val
;
39 struct symbol
*address
;
63 struct basic_block_list
;
64 struct instruction_list
;
67 * Basic block flags. Right now we only have one, which keeps
68 * track (at build time) whether the basic block has been branched
71 #define BB_HASBRANCH 0x00000001
74 unsigned long flags
; /* BB status flags */
75 struct symbol
*this; /* Points to the symbol that owns "this" basic block - NULL if unreachable */
76 struct instruction_list
*insns
; /* Linear list of instructions */
77 struct symbol
*next
; /* Points to the symbol that describes the fallthrough */
80 static inline void add_bb(struct basic_block_list
**list
, struct basic_block
*bb
)
82 add_ptr_list((struct ptr_list
**)list
, bb
);
85 static inline void add_instruction(struct instruction_list
**list
, struct instruction
*insn
)
87 add_ptr_list((struct ptr_list
**)list
, insn
);
92 struct symbol_list
*syms
;
93 struct basic_block_list
*bbs
;
94 struct basic_block
*active
;
97 void linearize_symbol(struct symbol
*sym
);
99 #endif /* LINEARIZE_H */