+ return (_get_or_set_live(block, irn, 0)->state & live_state_out) != 0;
+}
+
+static INLINE int _is_live_end(const ir_node *block, const ir_node *irn)
+{
+ return (_get_or_set_live(block, irn, 0)->state & live_state_end) != 0;
+}
+
+#define live_foreach(block, live_info) \
+ for(live_info = _get_or_set_live(block, block, 0)->next; live_info; live_info = live_info->next)
+
+static INLINE void _put_live(const ir_node *block, int state, pset *s)
+{
+ irn_live_t *live;
+
+ live_foreach(block, live) {
+ if(live->state & state)
+ pset_insert_ptr(s, live->irn);
+ }
+}
+
+static INLINE pset *_put_live_in(const ir_node *block, pset *s)
+{
+ _put_live(block, live_state_in, s);
+ return s;
+}