#include "obstack.h"
#include "hashtab.h"
#include "rtl.h"
+#include "hard-reg-set.h"
#include "basic-block.h"
/* Use malloc to allocate obstack chunks. */
};
typedef struct conflict_graph_arc_def *conflict_graph_arc;
+typedef const struct conflict_graph_arc_def *const_conflict_graph_arc;
/* A conflict graph. */
conflicts exist involving that reg. */
conflict_graph_arc *neighbor_heads;
- /* Arcs are allocated from here. */
+ /* Arcs are allocated from here. */
struct obstack arc_obstack;
};
static void mark_reg PARAMS ((rtx, rtx, void *));
\f
/* Callback function to compute the hash value of an arc. Uses
- current_graph to locate the graph to which the arc belongs. */
+ current_graph to locate the graph to which the arc belongs. */
static unsigned
arc_hash (arcp)
const void *arcp;
{
- conflict_graph_arc arc = (conflict_graph_arc) arcp;
+ const_conflict_graph_arc arc = (const_conflict_graph_arc) arcp;
return CONFLICT_HASH_FN (arc->smaller, arc->larger);
}
const void *arcp1;
const void *arcp2;
{
- conflict_graph_arc arc1 = (conflict_graph_arc) arcp1;
- conflict_graph_arc arc2 = (conflict_graph_arc) arcp2;
+ const_conflict_graph_arc arc1 = (const_conflict_graph_arc) arcp1;
+ const_conflict_graph_arc arc2 = (const_conflict_graph_arc) arcp2;
return arc1->smaller == arc2->smaller && arc1->larger == arc2->larger;
}
we're in SSA form, if a reg is set here it isn't set
anywhere elso, so this insn is where the reg is born. */
CLEAR_REG_SET (born);
- note_stores (PATTERN (insn), mark_reg, (void *) born);
-#ifdef AUTO_INC_DEC
- for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
- if (REG_NOTE_KIND (link) == REG_INC)
- mark_reg (XEXP (link, 0), NULL_RTX, NULL);
-#endif
+ note_stores (PATTERN (insn), mark_reg, born);
AND_REG_SET (born, regs);
/* Regs born here were not live before this insn. */