Commit 4af89b88 by Segher Boessenkool Committed by Segher Boessenkool

genautomata.c (get_excl_set): Do work per element, not per char.

2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>

        genautomata.c (get_excl_set): Do work per element, not per char.
        (check_presence_pattern_sets): Similar.
        (check_absence_pattern_sets): Similar.

From-SVN: r160307
parent 99d98200
2010-06-05 Segher Boessenkool <segher@kernel.crashing.org> 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
genautomata.c (get_excl_set): Do work per element, not per char.
(check_presence_pattern_sets): Similar.
(check_absence_pattern_sets): Similar.
2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
* genautomata.c (curr_state_pass_num): Delete. * genautomata.c (curr_state_pass_num): Delete.
(min_issue_delay_pass_states): Delete. (min_issue_delay_pass_states): Delete.
(min_issue_delay): Delete. (min_issue_delay): Delete.
......
...@@ -4174,20 +4174,18 @@ initiate_excl_sets (void) ...@@ -4174,20 +4174,18 @@ initiate_excl_sets (void)
static reserv_sets_t static reserv_sets_t
get_excl_set (reserv_sets_t in_set) get_excl_set (reserv_sets_t in_set)
{ {
int excl_char_num; int el;
int chars_num; unsigned int i;
int i;
int start_unit_num; int start_unit_num;
int unit_num; int unit_num;
chars_num = els_in_cycle_reserv * sizeof (set_el_t); memset (excl_set, 0, els_in_cycle_reserv * sizeof (set_el_t));
memset (excl_set, 0, chars_num); for (el = 0; el < els_in_cycle_reserv; el++)
for (excl_char_num = 0; excl_char_num < chars_num; excl_char_num++) if (in_set[el])
if (((unsigned char *) in_set) [excl_char_num]) for (i = 0; i < CHAR_BIT * sizeof (set_el_t); i++)
for (i = CHAR_BIT - 1; i >= 0; i--) if ((in_set[el] >> i) & 1)
if ((((unsigned char *) in_set) [excl_char_num] >> i) & 1)
{ {
start_unit_num = excl_char_num * CHAR_BIT + i; start_unit_num = el * CHAR_BIT * sizeof (set_el_t) + i;
if (start_unit_num >= description->units_num) if (start_unit_num >= description->units_num)
return excl_set; return excl_set;
for (unit_num = 0; unit_num < els_in_cycle_reserv; unit_num++) for (unit_num = 0; unit_num < els_in_cycle_reserv; unit_num++)
...@@ -4286,21 +4284,19 @@ check_presence_pattern_sets (reserv_sets_t checked_set, ...@@ -4286,21 +4284,19 @@ check_presence_pattern_sets (reserv_sets_t checked_set,
reserv_sets_t original_set, reserv_sets_t original_set,
int final_p) int final_p)
{ {
int char_num; int el;
int chars_num; unsigned int i;
int i;
int start_unit_num; int start_unit_num;
int unit_num; int unit_num;
int presence_p; int presence_p;
pattern_reserv_t pat_reserv; pattern_reserv_t pat_reserv;
chars_num = els_in_cycle_reserv * sizeof (set_el_t); for (el = 0; el < els_in_cycle_reserv; el++)
for (char_num = 0; char_num < chars_num; char_num++) if (original_set[el])
if (((unsigned char *) original_set) [char_num]) for (i = 0; i < CHAR_BIT * sizeof (set_el_t); i++)
for (i = CHAR_BIT - 1; i >= 0; i--) if ((original_set[el] >> i) & 1)
if ((((unsigned char *) original_set) [char_num] >> i) & 1)
{ {
start_unit_num = char_num * CHAR_BIT + i; start_unit_num = el * CHAR_BIT * sizeof (set_el_t) + i;
if (start_unit_num >= description->units_num) if (start_unit_num >= description->units_num)
break; break;
if ((final_p if ((final_p
...@@ -4335,20 +4331,18 @@ check_absence_pattern_sets (reserv_sets_t checked_set, ...@@ -4335,20 +4331,18 @@ check_absence_pattern_sets (reserv_sets_t checked_set,
reserv_sets_t original_set, reserv_sets_t original_set,
int final_p) int final_p)
{ {
int char_num; int el;
int chars_num; unsigned int i;
int i;
int start_unit_num; int start_unit_num;
int unit_num; int unit_num;
pattern_reserv_t pat_reserv; pattern_reserv_t pat_reserv;
chars_num = els_in_cycle_reserv * sizeof (set_el_t); for (el = 0; el < els_in_cycle_reserv; el++)
for (char_num = 0; char_num < chars_num; char_num++) if (original_set[el])
if (((unsigned char *) original_set) [char_num]) for (i = 0; i < CHAR_BIT * sizeof (set_el_t); i++)
for (i = CHAR_BIT - 1; i >= 0; i--) if ((original_set[el] >> i) & 1)
if ((((unsigned char *) original_set) [char_num] >> i) & 1)
{ {
start_unit_num = char_num * CHAR_BIT + i; start_unit_num = el * CHAR_BIT * sizeof (set_el_t) + i;
if (start_unit_num >= description->units_num) if (start_unit_num >= description->units_num)
break; break;
for (pat_reserv = (final_p for (pat_reserv = (final_p
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment