static void process_uses (df_ref use, int top_flag) { for (; use; use = DF_REF_NEXT_LOC (use)) if ((DF_REF_FLAGS (use) & DF_REF_AT_TOP) == top_flag) { unsigned int uregno = DF_REF_REGNO (use); if (reg_defs[uregno] && !bitmap_bit_p (local_md, uregno) && bitmap_bit_p (local_lr, uregno)) use_def_ref[DF_REF_ID (use)] = reg_defs[uregno]; } }
static void process_defs (df_ref *def_rec, int top_flag) { df_ref def; while ((def = *def_rec++) != NULL) { df_ref curr_def = reg_defs[DF_REF_REGNO (def)]; unsigned int dregno; if ((DF_REF_FLAGS (def) & DF_REF_AT_TOP) != top_flag) continue; dregno = DF_REF_REGNO (def); if (curr_def) reg_defs_stack.safe_push (curr_def); else { /* Do not store anything if "transitioning" from NULL to NULL. But otherwise, push a special entry on the stack to tell the leave_block callback that the entry in reg_defs was NULL. */ if (DF_REF_FLAGS (def) & DF_MD_GEN_FLAGS) ; else reg_defs_stack.safe_push (def); } if (DF_REF_FLAGS (def) & DF_MD_GEN_FLAGS) { bitmap_set_bit (local_md, dregno); reg_defs[dregno] = NULL; } else { bitmap_clear_bit (local_md, dregno); reg_defs[dregno] = def; } } }
static void process_uses (df_ref *use_rec, int top_flag) { df_ref use; while ((use = *use_rec++) != NULL) if ((DF_REF_FLAGS (use) & DF_REF_AT_TOP) == top_flag) { unsigned int uregno = DF_REF_REGNO (use); if (reg_defs[uregno] && !bitmap_bit_p (local_md, uregno) && bitmap_bit_p (local_lr, uregno)) use_def_ref[DF_REF_ID (use)] = reg_defs[uregno]; } }
static void process_uses (df_ref *use_rec, int top_flag) { df_ref use; while ((use = *use_rec++) != NULL) if ((DF_REF_FLAGS (use) & DF_REF_AT_TOP) == top_flag) { unsigned int uregno = DF_REF_REGNO (use); if (VEC_index (df_ref, reg_defs, uregno) && !bitmap_bit_p (local_md, uregno) && bitmap_bit_p (local_lr, uregno)) VEC_replace (df_ref, use_def_ref, DF_REF_ID (use), VEC_index (df_ref, reg_defs, uregno)); } }