// Set the direct dependency cache entries.
if (!src.ssa1)
- src.ssa1 = dep;
- else if (!src.ssa2 && src.ssa1 != dep)
- src.ssa2 = dep;
+ src.ssa1 = SSA_NAME_VERSION (dep);
+ else if (!src.ssa2 && src.ssa1 != SSA_NAME_VERSION (dep))
+ src.ssa2 = SSA_NAME_VERSION (dep);
// Don't calculate imports or export/dep chains if BB is not provided.
// This is usually the case for when the temporal cache wants the direct
// If the first dependency is not set, there is no recomputation.
// Dependencies reflect original IL, not current state. Check if the
// SSA_NAME is still valid as well.
- if (!dep1 || SSA_NAME_IN_FREE_LIST (dep1))
+ if (!dep1)
return false;
// Don't recalculate PHIs or statements with side_effects.
bitmap_obstack m_bitmaps;
private:
struct rdc {
- tree ssa1; // First direct dependency
- tree ssa2; // Second direct dependency
+ unsigned int ssa1; // First direct dependency
+ unsigned int ssa2; // Second direct dependency
bitmap bm; // All dependencies
bitmap m_import;
};
unsigned v = SSA_NAME_VERSION (name);
if (v >= m_def_chain.length ())
return NULL_TREE;
- return m_def_chain[v].ssa1;
+ unsigned v1 = m_def_chain[v].ssa1;
+ if (!v1)
+ return NULL_TREE;
+ return ssa_name (v1);
}
// Return the second direct dependency for NAME, if there is one.
unsigned v = SSA_NAME_VERSION (name);
if (v >= m_def_chain.length ())
return NULL_TREE;
- return m_def_chain[v].ssa2;
+ unsigned v2 = m_def_chain[v].ssa2;
+ if (!v2)
+ return NULL_TREE;
+ return ssa_name (v2);
}
// GORI_MAP is used to accumulate what SSA names in a block can