-#include "set.h"
-#include "list.h"
-#include "hashptr.h"
-
-typedef enum _live_state_t {
- live_state_in = 1,
- live_state_end = 2,
- live_state_out = 4,
- live_state_block = 8,
-} live_state_t;
-
-typedef struct _irn_live_t {
- const ir_node *block;
- const ir_node *irn;
- unsigned state;
- struct _irn_live_t *next;
-} irn_live_t;
-
-typedef struct _irg_live_info_t {
- set *live;
-} irg_live_info_t;
-
-extern size_t live_irg_data_offset;
-
-#define get_irg_live_info(irg) (get_irg_data(irg, irg_live_info_t, live_irg_data_offset))
-
-#define live_is_in(live) (((live)->state & live_state_in) != 0)
-#define live_is_end(live) (((live)->state & live_state_end) != 0)
-#define live_is_out(live) (((live)->state & live_state_out) != 0)
-
-static INLINE irn_live_t *_get_or_set_live(const ir_node *block,
- const ir_node *irn, int state)
-{
- irg_live_info_t *live_info = get_irg_live_info(get_irn_irg(block));
- irn_live_t *live, templ;
- unsigned hash = HASH_PTR(block) + 37 * HASH_PTR(irn);