[LLVMdev] RE : Problem with "Does not dominate all uses"

Rinaldini Julien julien.rinaldini at heig-vd.ch
Tue Aug 21 02:20:58 PDT 2012


I have another question.

DemotePHIToStack is not supposed to get rid of this problem, by replacing the instruction with a pointer and so there is no more dominance problem ?

Cheers

ps: sorry for double post

> In your original file, %6 is defined in if.end11 and is used in cond.end. if.end11 branches to cond.true and cond.false, both of which branch unconditionally to cond.end. Therefore %6 dominates its use.
>
> In your second file %18 is defined in end.11 and used in cond.end. However, end.11 no longer dominates cond.end because you have rewritten all branches to go through the switch statement in loopEntry, and it is possible to take the path from 
> entry to loopEntry to cond.end without going through end.11.

> Cameron




More information about the llvm-dev mailing list