Hi,
I am interested in getting llvm IR only for a subset of the input source
code - basically starting from a specified top level function, including all its
callee functions (recursively).
For example, in the following code, I am interested in a command like
"extract -top_function blah()" that will create an llvm IR with just
blah() and foo().
int foo() {
...
}
int blah() {
foo()
}
int junk() {
blah();
}
int main() {
junk();
}
I can imagine writing some kind of FunctionPass that filters for specified
function etc. But is there already some pass/command/tool that already does
something similar?
Thanks in advance for helping a newbie!
-Ananth
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20110809/b01d1646/attachment.html>
Ananth Durbha
2011-Aug-10 06:40 UTC
[LLVMdev] extracting sub-program using specified top level function name
fixing missing subject line in original email.
----- Forwarded Message -----
From: Ananth Durbha <avdurbha at yahoo.com>
To: llvm list <llvmdev at cs.uiuc.edu>
Sent: Tuesday, August 9, 2011 11:38 PM
Subject:
Hi,
I am interested in getting llvm IR only for a subset of the input source
code - basically starting from a specified top level function, including all its
callee functions (recursively).
For example, in the following code, I am interested in a command like
"extract -top_function blah()" that will create an llvm IR with just
blah() and foo().
int foo() {
...
}
int blah() {
foo()
}
int junk() {
blah();
}
int main() {
junk();
}
I can imagine writing some kind of FunctionPass that filters for specified
function etc. But is there already some pass/command/tool that already does
something similar?
Thanks in advance for helping a newbie!
-Ananth
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20110809/71924752/attachment.html>
Hi Ananth, I'm not sure about a tool that already does it, but there is code to construct a callgraph that you could use to write a pass to do this. On Tue, Aug 9, 2011 at 11:38 PM, Ananth Durbha <avdurbha at yahoo.com> wrote:> Hi, > I am interested in getting llvm IR only for a subset of the input > source code - basically starting from a specified top level function, > including all its callee functions (recursively). > > For example, in the following code, I am interested in a command like > "extract -top_function blah()" that will create an llvm IR with just blah() > and foo(). > > int foo() { > ... > } > > int blah() { > foo() > } > > int junk() { > blah(); > } > > int main() { > junk(); > } > > I can imagine writing some kind of FunctionPass that filters for > specified function etc. But is there already some pass/command/tool that > already does something similar? > > Thanks in advance for helping a newbie! > > -Ananth > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-- gregory malecha http://www.people.fas.harvard.edu/~gmalecha/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110809/bc03da46/attachment.html>
Devang Patel
2011-Aug-10 18:01 UTC
[LLVMdev] extracting sub-program using specified top level function name
Have you looked at llvm-extract tool ? - Devang On Aug 9, 2011, at 11:40 PM, Ananth Durbha wrote:> fixing missing subject line in original email. > > ----- Forwarded Message ----- > From: Ananth Durbha <avdurbha at yahoo.com> > To: llvm list <llvmdev at cs.uiuc.edu> > Sent: Tuesday, August 9, 2011 11:38 PM > Subject: > > Hi, > I am interested in getting llvm IR only for a subset of the input source code - basically starting from a specified top level function, including all its callee functions (recursively). > > For example, in the following code, I am interested in a command like "extract -top_function blah()" that will create an llvm IR with just blah() and foo(). > > int foo() { > ... > } > > int blah() { > foo() > } > > int junk() { > blah(); > } > > int main() { > junk(); > } > > I can imagine writing some kind of FunctionPass that filters for specified function etc. But is there already some pass/command/tool that already does something similar? > > Thanks in advance for helping a newbie! > > -Ananth > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/148456c9/attachment.html>