Skip to content

Commit

Permalink
ocamlyacc: Rip out register storage class specifier
Browse files Browse the repository at this point in the history
The register storage class specifier is obsolete, as modern compilers
can do a much better job of register allocation.  The only exception is
the "register variables" extension supported by GCC, which OCaml
actually uses for its bytecode interpreter.

This change is specific to ocamlyacc because it could be done by a sed
call there.  Ripping out obsolete uses of "register" from the runtime
will require more work.
  • Loading branch information
DemiMarie committed Dec 1, 2022
1 parent 548f959 commit d212a24
Show file tree
Hide file tree
Showing 13 changed files with 340 additions and 340 deletions.
58 changes: 29 additions & 29 deletions yacc/closure.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ void print_closure (int n);

static void set_EFF(void)
{
register unsigned *row;
register int symbol;
register short *sp;
register int rowsize;
register int i;
register int rule;
unsigned *row;
int symbol;
short *sp;
int rowsize;
int i;
int rule;

rowsize = WORDSIZE(nvars);
EFF = NEW2(nvars * rowsize, unsigned);
Expand Down Expand Up @@ -68,12 +68,12 @@ static void set_EFF(void)

void set_first_derives(void)
{
register unsigned *rrow;
register unsigned *vrow;
register int j;
register unsigned mask;
register unsigned cword;
register short *rp;
unsigned *rrow;
unsigned *vrow;
int j;
unsigned mask;
unsigned cword;
short *rp;

int rule;
int i;
Expand Down Expand Up @@ -125,13 +125,13 @@ void set_first_derives(void)

void closure(short int *nucleus, int n)
{
register int ruleno;
register unsigned word;
register unsigned mask;
register short *csp;
register unsigned *dsp;
register unsigned *rsp;
register int rulesetsize;
int ruleno;
unsigned word;
unsigned mask;
short *csp;
unsigned *dsp;
unsigned *rsp;
int rulesetsize;

short *csend;
unsigned *rsend;
Expand Down Expand Up @@ -208,7 +208,7 @@ void finalize_closure(void)

void print_closure(int n)
{
register short *isp;
short *isp;

printf("\n\nn = %d\n\n", n);
for (isp = itemset; isp < itemsetend; isp++)
Expand All @@ -218,10 +218,10 @@ void print_closure(int n)

void print_EFF(void)
{
register int i, j;
register unsigned *rowp;
register unsigned word;
register unsigned mask;
int i, j;
unsigned *rowp;
unsigned word;
unsigned mask;

printf("\n\nEpsilon Free Firsts\n");

Expand Down Expand Up @@ -250,11 +250,11 @@ void print_EFF(void)

void print_first_derives(void)
{
register int i;
register int j;
register unsigned *rp;
register unsigned cword;
register unsigned mask;
int i;
int j;
unsigned *rp;
unsigned cword;
unsigned mask;

printf("\n\n\nFirst Derives\n");

Expand Down
6 changes: 3 additions & 3 deletions yacc/defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -310,10 +310,10 @@ extern short final_state;
extern char *allocate(unsigned int n);
extern bucket *lookup(char *name);
extern bucket *make_bucket(char *name);
extern action *parse_actions(register int stateno);
extern action *parse_actions(int stateno);
extern action *get_shifts(int stateno);
extern action *add_reductions(int stateno, register action *actions);
extern action *add_reduce(register action *actions, register int ruleno, register int symbol);
extern action *add_reductions(int stateno, action *actions);
extern action *add_reduce(action *actions, int ruleno, int symbol);
extern void closure (short int *nucleus, int n);
extern void create_symbol_table (void);
extern void default_action_error (void) Noreturn;
Expand Down
2 changes: 1 addition & 1 deletion yacc/error.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void unexpected_EOF(void)

static void print_pos(char *st_line, char *st_cptr)
{
register char *s;
char *s;

if (st_line == 0) return;
for (s = st_line; *s != '\n'; ++s)
Expand Down
142 changes: 71 additions & 71 deletions yacc/lalr.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ void compute_FOLLOWS (void);
void compute_lookaheads (void);
void digraph (short int **relation);
void add_lookback_edge (int stateno, int ruleno, int gotono);
void traverse (register int i);
void traverse (int i);

void lalr(void)
{
Expand All @@ -88,7 +88,7 @@ void lalr(void)

void set_state_table(void)
{
register core *sp;
core *sp;

state_table = NEW2(nstates, core *);
for (sp = first_state; sp; sp = sp->next)
Expand All @@ -99,7 +99,7 @@ void set_state_table(void)

void set_accessing_symbol(void)
{
register core *sp;
core *sp;

accessing_symbol = NEW2(nstates, short);
for (sp = first_state; sp; sp = sp->next)
Expand All @@ -110,7 +110,7 @@ void set_accessing_symbol(void)

void set_shift_table(void)
{
register shifts *sp;
shifts *sp;

shift_table = NEW2(nstates, shifts *);
for (sp = first_shift; sp; sp = sp->next)
Expand All @@ -121,7 +121,7 @@ void set_shift_table(void)

void set_reduction_table(void)
{
register reductions *rp;
reductions *rp;

reduction_table = NEW2(nstates, reductions *);
for (rp = first_reduction; rp; rp = rp->next)
Expand All @@ -132,10 +132,10 @@ void set_reduction_table(void)

void set_maxrhs(void)
{
register short *itemp;
register short *item_end;
register int length;
register int max;
short *itemp;
short *item_end;
int length;
int max;

length = 0;
max = 0;
Expand All @@ -160,8 +160,8 @@ void set_maxrhs(void)

void initialize_LA(void)
{
register int i, j, k;
register reductions *rp;
int i, j, k;
reductions *rp;

lookaheads = NEW2(nstates + 1, short);

Expand Down Expand Up @@ -197,13 +197,13 @@ void initialize_LA(void)

void set_goto_map(void)
{
register shifts *sp;
register int i;
register int symbol;
register int k;
register short *temp_map;
register int state2;
register int state1;
shifts *sp;
int i;
int symbol;
int k;
short *temp_map;
int state2;
int state1;

goto_map = NEW2(nvars + 1, short) - ntokens;
temp_map = NEW2(nvars + 1, short) - ntokens;
Expand Down Expand Up @@ -267,10 +267,10 @@ void set_goto_map(void)
static int
map_goto(int state, int symbol)
{
register int high;
register int low;
register int middle;
register int s;
int high;
int low;
int middle;
int s;

low = goto_map[symbol];
high = goto_map[symbol + 1];
Expand All @@ -293,18 +293,18 @@ map_goto(int state, int symbol)

void initialize_F(void)
{
register int i;
register int j;
register int k;
register shifts *sp;
register short *edge;
register unsigned *rowp;
register short *rp;
register short **reads;
register int nedges;
register int stateno;
register int symbol;
register int nwords;
int i;
int j;
int k;
shifts *sp;
short *edge;
unsigned *rowp;
short *rp;
short **reads;
int nedges;
int stateno;
int symbol;
int nwords;

nwords = ngotos * tokensetsize;
F = NEW2(nwords, unsigned);
Expand Down Expand Up @@ -370,23 +370,23 @@ void initialize_F(void)

void build_relations(void)
{
register int i;
register int j;
register int k;
register short *rulep;
register short *rp;
register shifts *sp;
register int length;
register int nedges;
register int done;
register int state1;
register int stateno;
register int symbol1;
register int symbol2;
register short *shortp;
register short *edge;
register short *states;
register short **new_includes;
int i;
int j;
int k;
short *rulep;
short *rp;
shifts *sp;
int length;
int nedges;
int done;
int state1;
int stateno;
int symbol1;
int symbol2;
short *shortp;
short *edge;
short *states;
short **new_includes;

includes = NEW2(ngotos, short *);
edge = NEW2(ngotos + 1, short);
Expand Down Expand Up @@ -462,9 +462,9 @@ void build_relations(void)

void add_lookback_edge(int stateno, int ruleno, int gotono)
{
register int i, k;
register int found;
register shorts *sp;
int i, k;
int found;
shorts *sp;

i = lookaheads[stateno];
k = lookaheads[stateno + 1];
Expand All @@ -489,12 +489,12 @@ void add_lookback_edge(int stateno, int ruleno, int gotono)
short **
transpose(short int **R, int n)
{
register short **new_R;
register short **temp_R;
register short *nedges;
register short *sp;
register int i;
register int k;
short **new_R;
short **temp_R;
short *nedges;
short *sp;
int i;
int k;

nedges = NEW2(n, short);

Expand Down Expand Up @@ -550,10 +550,10 @@ void compute_FOLLOWS(void)

void compute_lookaheads(void)
{
register int i, n;
register unsigned *fp1, *fp2, *fp3;
register shorts *sp, *next;
register unsigned *rowp;
int i, n;
unsigned *fp1, *fp2, *fp3;
shorts *sp, *next;
unsigned *rowp;

rowp = LA;
n = lookaheads[nstates];
Expand Down Expand Up @@ -584,7 +584,7 @@ void compute_lookaheads(void)

void digraph(short int **relation)
{
register int i;
int i;

infinity = ngotos + 2;
INDEX = NEW2(ngotos + 1, short);
Expand All @@ -608,13 +608,13 @@ void digraph(short int **relation)



void traverse(register int i)
void traverse(int i)
{
register unsigned *fp1;
register unsigned *fp2;
register unsigned *fp3;
register int j;
register short *rp;
unsigned *fp1;
unsigned *fp2;
unsigned *fp3;
int j;
short *rp;

int height;
unsigned *base;
Expand Down
Loading

0 comments on commit d212a24

Please sign in to comment.