[LLVMdev] loop metdata instruction
Redmond, Paul
paul.redmond at intel.com
Tue Feb 26 11:49:54 PST 2013
Hi Dmitry,
On 2013-02-26, at 8:14 AM, Dmitry Babokin wrote:
Hi Pekka,
On Tue, Feb 26, 2013 at 11:08 AM, Pekka Jääskeläinen <pekka.jaaskelainen at tut.fi<mailto:pekka.jaaskelainen at tut.fi>> wrote:
Isn't it possible that multiple nested loops share the header and
the pre-header in normalized loops? Thus, then adding metadata to the
preheader's branch would make the MD ambiguous for nested loops.
The header can't be shared, otherwise it's the same loop. Though strictly speaking it depends on definition of the loop, but in my experience, the most practical definition is "loop == header".
I think Pekka is correct and in general you can't assume the header belongs to a single loop. However, for reducible CFGs I believe this is true.
paul
Another observation is that pre-header is highly important for optimizations as a placeholder for hoisting the code out of the loop. So even if the pre-header doesn't exist, it makes sense to create it during optimization. But pre-header of the inner loop may make it more difficult to detect that loop-nest is perfect nest (i.e. the only real code of the outer loop is the inner loop).
-Dmitry.
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu<mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list