[LLVMdev] SimplifyCFG vs loops

Krzysztof Parzyszek kparzysz at codeaurora.org
Wed Oct 17 12:25:03 PDT 2012

On 10/17/2012 2:11 PM, James Courtier-Dutton wrote:
> I thing to keep in mind is this is CFG, and can be unstructured, or
> after various transformations, not representable in higher level
> language structures such as while loops.

Having a specific loop structure with specific requirements, such as 
single back edge can make loop optimizations (and loop nest 
optimizations in particular) a lot simpler (or even possible).

I don't have the specific case right now (I worked on it a while ago), 
but it was a case of loop unrolling giving up after SimplifyCFG.

Another thing to keep in mind is that a compiler can shoot itself in the 
foot really easily, by performing early optimizations that hide 
opportunities for later transformations.  This is my main concern here.

Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation

More information about the llvm-dev mailing list