static reg_out_info_t *get_out_info_n(const ir_node *node, unsigned pos)
{
const backend_info_t *info = be_get_info(node);
- assert(!is_Proj(node));
assert(pos < (unsigned)ARR_LEN(info->out_infos));
return &info->out_infos[pos];
}
void arch_set_irn_flags(ir_node *node, arch_irn_flags_t flags)
{
- backend_info_t *info;
-
- /* setting flags is only supported for instructions currently.
- * (mainly because we found no use for it yet and saved the space for
- * be_infos for them */
- assert(!is_Proj(node));
- info = be_get_info(node);
+ backend_info_t *const info = be_get_info(node);
info->flags = flags;
}
void arch_add_irn_flags(ir_node *node, arch_irn_flags_t flags)
{
- backend_info_t *info;
- assert(!is_Proj(node));
- info = be_get_info(node);
+ backend_info_t *const info = be_get_info(node);
info->flags |= flags;
}
if (get_irn_irg(irn)->be_data == NULL)
return;
- if (sched_is_scheduled(irn) && !is_Block(irn)) {
+ if (!is_Proj(irn) && sched_is_scheduled(irn) && !is_Block(irn)) {
ir_node *const prev = sched_prev(irn);
if (!sched_is_begin(prev)) {
fprintf(F, "edge:{sourcename: ");
static inline backend_info_t *be_get_info(const ir_node *node)
{
+ assert(!is_Proj(node));
return (backend_info_t*) node->backend_info;
}