[LLVMdev] function terminators

John Criswell criswell at illinois.edu
Wed May 18 07:17:38 PDT 2011


On 5/17/2011 11:37 PM, Duncan Sands wrote:
> Hi George,
>
>>     Does llvm provide a way to determine instructions that cause control to
>> leave functions? For example, return statements and exit statements cause
>> control exit out of function.
> there is no "exit" statement.
>
>    I am looking for something similar to basic block
>> terminators. Thanks.
> Control can leave a function either (1) due to a return instruction
> (ReturnInst); or (2) due to a function call (CallInst or InvokeInst).
> A function call can return normally, unwind an exception or never
> return (eg: infinite loop or causing the program to exit).

To add to what Duncan said, there is also the unwind instruction (which 
is similar to the ReturnInst).  The exception handling intrinsics may 
also cause control to leave a function, but I haven't looked at them 
and, therefore, do not know for certain.

The Language Reference Manual (http://llvm.org/docs/LangRef.html) may be 
of help.

-- John T.

> Ciao, Duncan.
> _______________________________________________
> LLVM Developers mailing list
> 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