[LLVMdev] Specify dominator for BasicBlock to avoid "Instruction does not dominate all uses!"

Xinfinity
2010-10-12T12:24:55Z

Hi, I tried adding the PHI nodes in BB_unique, and it works for the simple
case described here, but in case the nodes were declared in some
predecessors of ExitBB1 and used in ExitBB1_redirect and its successors, it
won't work, unless I create entries for all of them in BB_unique.

B1 (declares PHI_1)                        B3
 |                                                     |
B2                                                   |
|                                                      |
ExitBB1                                        ExitBB2
 |
Succ1 (uses PHI_1)

becomes:

B1 (declares PHI_1)                        B3
 |                                                     |
B2                                                   |
|                                                      |
ExitBB1                                        ExitBB2
  |                                                    |
 -------------------------------------------------------
                           |
                  BB_unique
                   /            \
 ExitBB1_redirect     ExitBB2_redirect
             |
Succ1 (uses PHI_1)





Devang Patel wrote:
>
>
>
> One approach is to use insert PHI nodes in BB_unique for values defined in
> ExitBB1 and use these phi nodes in ExitBB1_redirect.
>
>
>
> Devang
>
>
>

I will use the pass -reg2mem, as suggested by ether, to avoid to PHI nodes
altogether.

Thanks,
Alexandra
-

--
View this message in context:
http://old.nabble.com/Specify-dominator-for-BasicBlock-to-avoid-%22Instruction-does-not-dominate-all-uses%21%22-tp29935454p29942642.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.