[LLVMdev] how to check whether from basicblock A we can go to basicblock B within the same function?

Wenbin Zhang zhangwen at cse.ohio-state.edu
Fri Aug 27 14:28:13 PDT 2010


----- Original Message ----- 
From: "John Criswell" <criswell at illinois.edu>
To: "Wenbin Zhang" <zhangwen at cse.ohio-state.edu>
Cc: <llvmdev at cs.uiuc.edu>
Sent: Friday, August 27, 2010 5:09 PM
Subject: Re: [LLVMdev] how to check whether from basicblock A we can go to 
basicblock B within the same function?


> Wenbin Zhang wrote:
>> Dear all,
>> Is there a way to check whether we can go from A to B within a
>> function when I'm writing a pass?
>
> I assume you are asking whether control flow can pass from BasicBlock A
> to BasicBlock B. In that case, yes: all you need to do is look at the
> terminator instruction of BasicBlock A and see if it can branch to
> BasicBlock B.

Yes, also switch and invoke instruction have the similar effects.
So does it mean that I need to recursively traverse all the possible 
destinations from A (following the terminator instructions) to see whether I 
can reach B?

Thanks.

>
> There's a new indirect branch instruction; I don't believe it is used
> very often. You might have to handle those specially, but I'll let
> others comment on that.
>
> -- John T.
>
>> Thanks.
>> Best,
>> --Wenbin
>

Best,
--Wenbin 




More information about the llvm-dev mailing list