On Wed, Apr 29, 2009 at 17:15, Richard Guenther <richard.guent...@gmail.com> wrote: > I don't see how SSA form makes anything more complicated ;) >
One of the difficulties was regenerating the phi nodes after code hoisting: CLooG optimizes for (i) if (invariant of i) s += A[i]; into if (invariant of i) for (i) s += A[i]; In the transformed code you have no place to put the phi nodes that you had after the condition. Add to this the problem of code duplication that CLooG does sometimes: if (invariant of i) for (i in domain1) s += A[i]; for (i in domain2) s += A[i]; ... Maintaining the SSA form for s is difficult after such transforms. If you figure out a good way to maintain the SSA form, I'm very interested to hear about. Thanks, Sebastian