[LLVMdev] Emit a jump instruction to a place inside basicblock (original) (raw)
Eric Christopher echristo at gmail.com
Fri Oct 31 17:29:40 PDT 2014
- Previous message: [LLVMdev] Emit a jump instruction to a place inside basicblock
- Next message: [LLVMdev] Status of HSA in LLVM 3.6
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri Oct 31 2014 at 6:20:02 AM Xiaoguang Wang <xgwang09 at gmail.com> wrote:
On Thu, Oct 30, 2014 at 6:28 PM, Eric Christopher <echristo at gmail.com> wrote:
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> wrote:
On Thu Oct 30 2014 at 1:16:38 PM Xiaoguang Wang <xgwang09 at gmail.com> wrote: On Thu, Oct 30, 2014 at 2:33 PM, Robin Morisset <morisset at google.com> wrote: Hi, 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, Robin
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? -eric 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. -eric Thanks Eric for your help. I'm reading the function *Emitter::runOnMachineFunction(MachineFunction &MF)* in lib/Target/X86/X86CodeEmitter.cpp. And I hope this is the place I have to modify for my purpose. I might make an MI pass and make sure it happens last in the pipeline for this, but I haven't given it a lot of thought.
-eric -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141101/b0eeff87/attachment.html>
- Previous message: [LLVMdev] Emit a jump instruction to a place inside basicblock
- Next message: [LLVMdev] Status of HSA in LLVM 3.6
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]