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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [20000815-1.c] - Blame information for rev 308

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

Line No. Rev Author Line
1 297 jeremybenn
struct table_elt
2
{
3
  void *exp;
4
  struct table_elt *next_same_hash;
5
  struct table_elt *prev_same_hash;
6
  struct table_elt *next_same_value;
7
  struct table_elt *prev_same_value;
8
  struct table_elt *first_same_value;
9
  struct table_elt *related_value;
10
  int cost;
11
  int mode;
12
  char in_memory;
13
  char in_struct;
14
  char is_const;
15
  char flag;
16
};
17
 
18
struct write_data
19
{
20
  int sp : 1;
21
  int var : 1;
22
  int nonscalar : 1;
23
  int all : 1;
24
};
25
 
26
int cse_rtx_addr_varies_p(void *);
27
void remove_from_table(struct table_elt *, int);
28
static struct table_elt *table[32];
29
 
30
void
31
invalidate_memory (writes)
32
     struct write_data *writes;
33
{
34
  register int i;
35
  register struct table_elt *p, *next;
36
  int all = writes->all;
37
  int nonscalar = writes->nonscalar;
38
 
39
  for (i = 0; i < 31; i++)
40
    for (p = table[i]; p; p = next)
41
      {
42
        next = p->next_same_hash;
43
        if (p->in_memory
44
            && (all
45
                || (nonscalar && p->in_struct)
46
                || cse_rtx_addr_varies_p (p->exp)))
47
          remove_from_table (p, i);
48
      }
49
}
50
 
51
int cse_rtx_addr_varies_p(void *x) { return 0; }
52
void remove_from_table(struct table_elt *x, int y) { abort (); }
53
 
54
int
55
main()
56
{
57
  struct write_data writes;
58
  struct table_elt elt;
59
 
60
  __builtin_memset(&elt, 0, sizeof(elt));
61
  elt.in_memory = 1;
62
  table[0] = &elt;
63
 
64
  __builtin_memset(&writes, 0, sizeof(writes));
65
  writes.var = 1;
66
  writes.nonscalar = 1;
67
 
68
  invalidate_memory(&writes);
69
  return 0;
70
}

powered by: WebSVN 2.1.0

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