1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/* { dg-do compile } */
/* { dg-options "-O1 -fscalar-evolutions -fdump-tree-scev-details" } */
int bar (void);
int foo ()
{
int i;
int a = 2;
while (a)
{
a *= 3;
a += 5;
}
}
/* FIXME: This exposes a problem in the representation. Is it
possible to have an exponential and a polynomial together?
The first assignment constructs "a -> {2, *, 3}_1",
while the second adds 5 as a polynomial function.
The following two representations are not correct:
"a -> {{2, *, 3}_1, +, 5}_1"
"a -> {{2, +, 5}_1, *, 3}_1"
The right solution is:
"a -> {2, *, 3}_1 + {0, +, 5}_1"
but this exposes yet again the "exp + poly" problem: the representation
is not homogen. Going into a Taylor decomposition could solve this problem.
This is too difficult for the moment, and does not happen often.
*/
/* Do nothing for this testcase. */
/* FIXME. */
|