[LLVMdev] Emit a jump instruction to a place inside basicblock
echristo at gmail.com
Thu Oct 30 15:28:33 PDT 2014
On Thu Oct 30 2014 at 2:01:24 PM Xiaoguang Wang <xgwang09 at gmail.com> wrote:
> On Thu, Oct 30, 2014 at 4:48 PM, Eric Christopher <echristo at gmail.com>
>> On Thu Oct 30 2014 at 1:16:38 PM Xiaoguang Wang <xgwang09 at gmail.com>
>>> On Thu, Oct 30, 2014 at 2:33 PM, Robin Morisset <morisset at google.com>
>>>> From my understanding of the LLVM IR, it is impossible to jump to the
>>>> middle of a Basic Block, only to its beginning. But there is a
>>>> splitBasicBlock function that seems like it might be useful to you, to make
>>>> sure a basic block is starting at the exact place you want to jump.
>>>> Best regards,
>>> Thanks you all! I'm looking at splitBasicBlock and trying to use that.
>>> BTW, is there a way at lower level of LLVM that can implement this
>>> functionality? E.g. MCBasicBlock or MCInst?
>> You are unlikely to want to do this at the MC level, maybe the MI level.
>> What are you trying to accomplish?
> Thanks for the answer. I want to construct a table which can jump to the
> address after a call instruction. And replace the call/ret instructions
> with that indirection table. So to protect return address on stack.
An MI level pass will likely work, but you might end up having issues
replacing instructions. It'll be some effort though.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev