Lines Matching defs:reg_stat
163 struct reg_stat {
201 reg_stat[i].last_set_value is valid if it is nonzero, and either
202 reg_n_sets[i] is 1 or reg_stat[i].last_set_label == label_tick.
206 value for register J if reg_stat[j].last_set_invalid is zero, or
207 reg_stat[i].last_set_label < reg_stat[j].last_set_label.
272 static struct reg_stat *reg_stat;
334 /* Mode used to compute significance in reg_stat[].nonzero_bits. It is the
339 /* Nonzero when reg_stat[].nonzero_bits and reg_stat[].sign_bit_copies can
731 reg_stat = XCNEWVEC (struct reg_stat, nregs);
746 /* Don't use reg_stat[].nonzero_bits when computing it. This can cause
982 free (reg_stat);
1009 /* Wipe the last_xxx fields of reg_stat in preparation for another pass. */
1016 memset (reg_stat + i, 0, offsetof (struct reg_stat, sign_bit_copies));
1077 reg_stat[REGNO (x)].nonzero_bits = GET_MODE_MASK (GET_MODE (x));
1078 reg_stat[REGNO (x)].sign_bit_copies = 1;
1100 sign-extend it for use in reg_stat[].nonzero_bits because some
1119 if (reg_stat[REGNO (x)].nonzero_bits != ~(unsigned HOST_WIDE_INT) 0)
1120 reg_stat[REGNO (x)].nonzero_bits
1123 if (reg_stat[REGNO (x)].sign_bit_copies == 0
1124 || reg_stat[REGNO (x)].sign_bit_copies > num)
1125 reg_stat[REGNO (x)].sign_bit_copies = num;
1129 reg_stat[REGNO (x)].nonzero_bits = GET_MODE_MASK (GET_MODE (x));
1130 reg_stat[REGNO (x)].sign_bit_copies = 1;
2889 && reg_stat[REGNO (temp)].nonzero_bits != 0
2892 && (reg_stat[REGNO (temp)].nonzero_bits
2897 && reg_stat[REGNO (temp)].nonzero_bits != 0
2900 && (reg_stat[REGNO (temp)].nonzero_bits
3376 /* Update reg_stat[].nonzero_bits et al for any changes that may have
8313 if (reg_stat[REGNO (x)].last_set_value != 0
8314 && (reg_stat[REGNO (x)].last_set_mode == mode
8315 || (GET_MODE_CLASS (reg_stat[REGNO (x)].last_set_mode) == MODE_INT
8317 && (reg_stat[REGNO (x)].last_set_label == label_tick
8323 && INSN_CUID (reg_stat[REGNO (x)].last_set) < subst_low_cuid)
8325 *nonzero &= reg_stat[REGNO (x)].last_set_nonzero_bits;
8355 else if (nonzero_sign_valid && reg_stat[REGNO (x)].nonzero_bits)
8357 unsigned HOST_WIDE_INT mask = reg_stat[REGNO (x)].nonzero_bits;
8383 if (reg_stat[REGNO (x)].last_set_value != 0
8384 && reg_stat[REGNO (x)].last_set_mode == mode
8385 && (reg_stat[REGNO (x)].last_set_label == label_tick
8391 && INSN_CUID (reg_stat[REGNO (x)].last_set) < subst_low_cuid)
8393 *result = reg_stat[REGNO (x)].last_set_sign_bit_copies;
8401 if (nonzero_sign_valid && reg_stat[REGNO (x)].sign_bit_copies != 0
8403 *result = reg_stat[REGNO (x)].sign_bit_copies;
10850 reg_stat[r].last_set_table_tick = label_tick;
10898 value. If INSN is zero, don't update reg_stat[].last_set; this is
10951 reg_stat[i].last_set = insn;
10953 reg_stat[i].last_set_value = 0;
10954 reg_stat[i].last_set_mode = 0;
10955 reg_stat[i].last_set_nonzero_bits = 0;
10956 reg_stat[i].last_set_sign_bit_copies = 0;
10957 reg_stat[i].last_death = 0;
10958 reg_stat[i].truncated_to_mode = 0;
10974 reg_stat[i].last_set_label = label_tick;
10975 if (!insn || (value && reg_stat[i].last_set_table_tick == label_tick))
10976 reg_stat[i].last_set_invalid = 1;
10978 reg_stat[i].last_set_invalid = 0;
10985 reg_stat[regno].last_set_label, 0))
10989 reg_stat[regno].last_set_label, 1))
10996 reg_stat[regno].last_set_value = value;
11002 reg_stat[regno].last_set_mode = mode;
11006 reg_stat[regno].last_set_nonzero_bits = nonzero_bits (value, mode);
11007 reg_stat[regno].last_set_sign_bit_copies
11059 We update reg_stat[], in particular fields last_set, last_set_value,
11083 reg_stat[i].last_death = insn;
11094 reg_stat[i].last_set_value = 0;
11095 reg_stat[i].last_set_mode = 0;
11096 reg_stat[i].last_set_nonzero_bits = 0;
11097 reg_stat[i].last_set_sign_bit_copies = 0;
11098 reg_stat[i].last_death = 0;
11099 reg_stat[i].truncated_to_mode = 0;
11146 if (reg_stat[regno].last_set == insn)
11149 reg_stat[regno].last_set_nonzero_bits &= GET_MODE_MASK (mode);
11170 enum machine_mode truncated = reg_stat[REGNO (x)].truncated_to_mode;
11172 if (truncated == 0 || reg_stat[REGNO (x)].truncation_label != label_tick)
11212 if (reg_stat[REGNO (x)].truncated_to_mode == 0
11213 || reg_stat[REGNO (x)].truncation_label < label_tick
11215 < GET_MODE_SIZE (reg_stat[REGNO (x)].truncated_to_mode)))
11217 reg_stat[REGNO (x)].truncated_to_mode = truncated_mode;
11218 reg_stat[REGNO (x)].truncation_label = label_tick;
11286 if (reg_stat[j].last_set_invalid
11294 && reg_stat[j].last_set_label > tick))
11386 value = reg_stat[regno].last_set_value;
11399 || (reg_stat[regno].last_set_label != label_tick
11409 if (INSN_CUID (reg_stat[regno].last_set) >= subst_low_cuid)
11413 if (get_last_value_validate (&value, reg_stat[regno].last_set,
11414 reg_stat[regno].last_set_label, 0))
11421 if (get_last_value_validate (&value, reg_stat[regno].last_set,
11422 reg_stat[regno].last_set_label, 1))
11452 if (reg_stat[regno].last_set
11453 && INSN_CUID (reg_stat[regno].last_set) > from_cuid)
11717 rtx where_dead = reg_stat[regno].last_death;
12388 if (reg_stat[regno].last_death != place)
12389 reg_stat[regno].last_death = 0;
12393 reg_stat[regno].last_death = place;