Hi Krzysztof, Thanks for the suggestion. I'm using the wrapper function *isTerminator* provided in MachineInstr.h for that purpose. I can't use intrinsics because the application needs access to physical registers sometimes. I am planning to run through all the inline asm statements and replace them with corresponding newly built MachineInstr objects. I plan to run through the entire function again to detect terminators and create basic blocks when a terminator is found in the middle of a basic block. However I'm seeing that some of the machine basic blocks are coming with a branch instruction followed by an immediate jump. This is because both the branches of an 'if' conidtion are not immediately following the basic block. At a design level, how do you think I should handle this. Is it OK to leave it like that? Or should I split into multiple basic blocks with the 2nd one having only 1 unconditional jump. Regards, Vishwa Prakash A -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140604/7d9dbd86/attachment.html>