<div dir="ltr">You might be able to just check for the return instruction in X86AsmPrinter::EmitInstruction where we convert from MachineInstr to MCInst. You can change it to a POP and a JUMP MCInst.<br clear="all"><div><div dir="ltr" class="gmail_signature"><br></div><div dir="ltr" class="gmail_signature">~Craig</div></div><br></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 8, 2018 at 8:31 PM <a href="http://mayuyu.io">mayuyu.io</a> via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">IndirectBr only works for Branch instructions, not ret.<br>
The latter one seems likely however I’m no where near a backend expert so I could be wrong : (<br>
<br>
Zhang<br>
<br>
> 在 2018年8月9日,11:23,PenYiWang via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> 写道:<br>
> <br>
> Hi <br>
> <br>
> I want to replace all the return instructions in the program with pop <reg>; jmp <reg>.<br>
> <br>
> Should I use  IRBuilder in LLVM IR level?<br>
> <br>
> I found that there is a IRBuilder::CreateIndirectBr<br>
> <br>
> Or Should I modify the code in lib/Target/X86/X86ISelLowering.cpp in backend ?<br>
> <br>
> I found that there is a X86TargetLowering::LowerCall<br>
> <br>
> Which is better?<br>
> <br>
> Thanks<br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br>
<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>