Commit 55c672a6 authored by Sebastian Hack's avatar Sebastian Hack
Browse files

Added support for memory phis in liveness

parent 693d8f30
......@@ -23,6 +23,11 @@
#define LV_USE_BINARY_SEARCH
#undef LV_INTESIVE_CHECKS
static INLINE int is_liveness_node(const ir_node *irn)
{
return is_Phi(irn) || is_data_node(irn);
}
int (be_lv_next_irn)(const struct _be_lv_t *lv, const ir_node *bl, unsigned flags, int i)
{
return _be_lv_next_irn(lv, bl, flags, i);
......@@ -334,7 +339,7 @@ static void liveness_for_node(ir_node *irn, void *data)
ir_node *def_block;
/* Don't compute liveness information for non-data nodes. */
if(!is_data_node(irn))
if(!is_liveness_node(irn))
return;
bitset_clear_all(visited);
......@@ -349,7 +354,7 @@ static void liveness_for_node(ir_node *irn, void *data)
* If the usage is no data node, skip this use, since it does not
* affect the liveness of the node.
*/
if(!is_data_node(use))
if(!is_liveness_node(use))
continue;
/* Get the block where the usage is in. */
......
......@@ -18,6 +18,11 @@
#include "besched_t.h"
#include "belive_t.h"
static sched_timestep_t get_time_step(const ir_node *irn)
{
return is_Phi(irn) ? 0 : sched_get_time_step(irn);
}
int value_dominates(const ir_node *a, const ir_node *b)
{
int res = 0;
......@@ -35,8 +40,8 @@ int value_dominates(const ir_node *a, const ir_node *b)
* Dominance is determined by the time steps of the schedule.
*/
} else {
sched_timestep_t as = sched_get_time_step(a);
sched_timestep_t bs = sched_get_time_step(b);
sched_timestep_t as = get_time_step(a);
sched_timestep_t bs = get_time_step(b);
res = as <= bs;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment