Dear all, I hope you enjoy your christmas! Recently I started to play lli with bc. I found that the lli only calls the main() function in bc file and then does nothing before the main() function returns, which means that the JIT::runFunction() function is involved only once with the main() function in bc file. If this was true, then lli does not have any control to the execution of program. Is this the case? What I was thinking lli would do is fetching each LLVM IR instruction and "execute" it with some tricks. Is there any option for JIT/lli to work like this? -- Regards, Heming Cui -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091230/803c91fe/attachment.html>
On Wed, Dec 30, 2009 at 7:53 PM, Heming Cui <heming at cs.columbia.edu> wrote:> Dear all, > I hope you enjoy your christmas! Recently I started to play lli with > bc. I found that the lli only calls the main() function in bc file and then > does nothing before the main() function returns, which means that the > JIT::runFunction() function is involved only once with the main() function > in bc file. If this was true, then lli does not have any control > to the execution of program. Is this the case?In JIT mode, yes.> What I was thinking lli would do is fetching each LLVM IR instruction > and "execute" it with some tricks. Is there any option for JIT/lli to work > like this?If you pass -force-interpreter to lli, you should get something closer to what you're looking for. -Eli
Hi Eli, Thanks for your reply. If I add -force-interpreter to lli, then it seems that it can not run external function like printf or malloc. Is there any easy way to solve this problem? On Wed, Dec 30, 2009 at 11:26 PM, Eli Friedman <eli.friedman at gmail.com>wrote:> On Wed, Dec 30, 2009 at 7:53 PM, Heming Cui <heming at cs.columbia.edu> > wrote: > > Dear all, > > I hope you enjoy your christmas! Recently I started to play lli with > > bc. I found that the lli only calls the main() function in bc file and > then > > does nothing before the main() function returns, which means that the > > JIT::runFunction() function is involved only once with the main() > function > > in bc file. If this was true, then lli does not have any control > > to the execution of program. Is this the case? > > In JIT mode, yes. > > > What I was thinking lli would do is fetching each LLVM IR > instruction > > and "execute" it with some tricks. Is there any option for JIT/lli to > work > > like this? > > If you pass -force-interpreter to lli, you should get something closer > to what you're looking for. > > -Eli > >-- Regards, Heming Cui -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091231/93e4f6a8/attachment.html>
Dear all, Actually, the thing I am concerned is: can "-force-interpreter" handle the clone() libc call in a program? Since the clone() libc call is written in assembly language (in clone.S in glibc), as a result, when the CLONE_VM flag is added to clone(), the child *thread* will call the sub routine (the first argument in the clone() libc call) directly via assembly language in clone.S, then the LLVM intepreter might lose control to the execution of the sub routine? Is this the case? On Wed, Dec 30, 2009 at 11:26 PM, Eli Friedman <eli.friedman at gmail.com>wrote:> On Wed, Dec 30, 2009 at 7:53 PM, Heming Cui <heming at cs.columbia.edu> > wrote: > > Dear all, > > I hope you enjoy your christmas! Recently I started to play lli with > > bc. I found that the lli only calls the main() function in bc file and > then > > does nothing before the main() function returns, which means that the > > JIT::runFunction() function is involved only once with the main() > function > > in bc file. If this was true, then lli does not have any control > > to the execution of program. Is this the case? > > In JIT mode, yes. > > > What I was thinking lli would do is fetching each LLVM IR > instruction > > and "execute" it with some tricks. Is there any option for JIT/lli to > work > > like this? > > If you pass -force-interpreter to lli, you should get something closer > to what you're looking for. > > -Eli > >-- Regards, Heming Cui -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091231/5e4e7242/attachment.html>