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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [tree-ssa/] [pr49911.C] - Blame information for rev 847

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

Line No. Rev Author Line
1 693 jeremybenn
/* { dg-do compile } */
2
/* { dg-options "-O2 -fstrict-enums -fno-rtti -fno-exceptions -fno-strict-aliasing -fdump-tree-vrp2" } */
3
 
4
 
5
extern  void JS_Assert();
6
typedef enum {
7
eax,         ecx,         edx,         ebx,         esp,         ebp,
8
esi,         edi     }
9
RegisterID;
10
union StateRemat {
11
  RegisterID reg_;
12
  int offset_;
13
};
14
static StateRemat FromRegister(RegisterID reg) {
15
  StateRemat sr;
16
  sr.reg_ = reg;
17
  return sr;
18
}
19
static StateRemat FromAddress3(int address) {
20
  StateRemat sr;
21
    sr.offset_ = address;
22
  //sr.offset_ = 0;
23
  if (address < 46 &&    address >= 0) {
24
    JS_Assert();
25
  }
26
  return sr;
27
}
28
struct FrameState {
29
  StateRemat dataRematInfo2(bool y, int z) {
30
    if (y)         return FromRegister(RegisterID(1));
31
    return FromAddress3(z);
32
  }
33
};
34
FrameState frame;
35
StateRemat x;
36
void jsop_setelem(bool y, int z) {
37
  x = frame.dataRematInfo2(y, z);
38
}
39
 
40
/* { dg-final { scan-tree-dump-times "Folding predicate.*45" 0 "vrp2"} } */
41
/* { dg-final { cleanup-tree-dump "vrp2" } } */

powered by: WebSVN 2.1.0

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