$ cat ssa.c
int main(void){
int a=0;
int b=a;
a=1;
if(a==1) a++;
return a+b;
}
$ gcc -O -Wall --dump-tree-ssa ssa.c -o ssa
$ cat ssa.c.024t.ssa
main ()
{
int a,b;
int D.1196;
<bb 2>:
a_2 = 0;
b_3 = a_2;
a_4 = 1;
if (a_4 == 1) goto <bb 3>; else goto <bb 4>;
<bb 3>:
a_5 = a_4 + 1;
<bb 4>:
# a_1 = PHI <a_4(2), a_5(3)>
D.1196_6 = a_1 + b_3;
return D.1196_6;
}
$ cat ssa3.c
#define TAILLE 1024
int main(void){
int a[TAILLE];
int index=TAILLE/2;
int resultat=0;
int i;
for(i=0;i<TAILLE;i++) a[i]=0;
for(i=0;i<TAILLE;i++) if(i==index) a[i]++;
for(i=0;i<TAILLE;i++) resultat += a[i];
return resultat;
}
$ gcc -O3 -Wall --dump-tree-ssa ssa3.c -o ssa3
$ cat ssa3.c.024t.ssa
main ()
{
int i;
int resultat;
int index;
int a[1024];
int D.1210,D.1209,D.1208;
int i.0;
...
#include <stdio.h>
int main(void){
int a=0;
printf("Coucou !\n");
a=1;
return a;
printf("Caché !\n");
}
$ gcc -O -Wall --dump-tree-dce code_mort.c -o code_mort
$ cat code_mort.c.079t.dce4
main ()
{
<bb 2>:
__builtin_puts (&"Coucou !"[0]);
a = 1;
return 1;
}
int main(void){
int a=1,b=2,c=3;
int d=a*c,e=d+2*b;
if(e!=2) e--;
return e;
}
$ gcc -O -Wall --dump-tree-ccp propagation.c -o propagation
$cat propagation.c.056t.ccp2
main ()
{
<bb 2>:
return 6;
}