OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [pr44784.c] - Blame information for rev 774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 688 jeremybenn
typedef struct rtx_def *rtx;
2
enum rtx_code { SUBREG };
3
typedef union rtunion_def {
4
    long rtint;
5
    unsigned long rtuint;
6
    rtx rtx;
7
} rtunion;
8
struct rtx_def {
9
    enum rtx_code code: 8;
10
    rtunion fld[1];
11
};
12
typedef struct simple_bitmap_def {
13
    unsigned long long elms[1];
14
} *sbitmap;
15
struct df_link {
16
    struct df_link *next;
17
    rtx reg;
18
};
19
typedef enum { UNDEFINED,   CONSTANT,   VARYING } latticevalue;
20
typedef struct {
21
    latticevalue lattice_val;
22
} value;
23
static value *values;
24
static sbitmap ssa_edges;
25
void defs_to_varying (struct df_link *start)
26
{
27
  struct df_link *currdef;
28
  for (currdef = start;
29
       currdef;
30
       currdef = currdef->next)
31
    {
32
      rtx reg = currdef->reg;
33
      if (values[(reg->code == SUBREG
34
                  ? reg->fld[0].rtx
35
                  : reg)->fld[0].rtuint].lattice_val != VARYING)
36
        ssa_edges->elms [(reg->code == SUBREG
37
                          ? reg->fld[0].rtx
38
                          : reg)->fld[0].rtuint / 64]
39
            |= ((unsigned long long) 1
40
                << (reg->code == SUBREG
41
                    ? reg->fld[0].rtx
42
                    : reg)->fld[0].rtuint % 64);
43
      values[(reg->code == SUBREG
44
              ? reg->fld[0].rtx
45
              : reg)->fld[0].rtuint].lattice_val = VARYING;
46
    }
47
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.