/* { dg-do compile } */ | |
/* { dg-options "-O2 -misel -fdump-tree-phiopt-details" } */ | |
typedef struct s { | |
int v; | |
int b; | |
struct s *l; | |
struct s *r; | |
} S; | |
int foo(S *s) | |
{ | |
S *this; | |
S *next; | |
this = s; | |
if (this->b) | |
next = this->l; | |
else | |
next = this->r; | |
return next->v; | |
} | |
/* { dg-final { scan-tree-dump "Hoisting adjacent loads" "phiopt2" } } */ |