[LLVMdev] Inline assembly in LLVM backend

Vishwa Prakash A vishwacs111 at gmail.com
Wed Jun 4 08:24:33 PDT 2014


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>


More information about the llvm-dev mailing list