[LLVMdev] interprocedural static backwards slicing
criswell at illinois.edu
Mon Oct 10 09:30:43 PDT 2011
On 10/9/11 12:12 AM, Jinwook Shin wrote:
> Thanks John. I appreciate your help and I look forward to obtaining the code.
> A proper LLVM sub-project: No rush on this and please take your time. Thanks.
Okay, I've created a new LLVM sub-project called Giri(*). It currently
contains only the static backwards slicing pass. I'll add the dynamic
slicing code to the project later.
The static slicing code works with LLVM 2.7 and the release_27 branch of
the poolalloc project (the poolalloc project contains our DSA points-to
analysis pass which the static slicing code uses to get the program's
You can get the code using the following SVN command:
svn co https://llvm.org/svn/llvm-project/poolalloc/branches/release_27
svn co https://llvm.org/svn/llvm-project/giri/trunk giri
Inside of your LLVM object tree, you need to configure the projects.
For example, if your source tree and object tree are the same, you would do:
Right now, the backwards slicing code attempts to find the backwards
slice of all stores. Someone will need to enhance the code to find
which stores can reach which loads and to use that information to get a
true backwards slice. Our DSA points-to analysis can be utilized to do
The code should also be updated to use LLVM mainline (what will be LLVM
3.0). The interfaces that other passes use to query its results may
also need changing.
If you're interested in making these changes, I can give you commit
access to the giri repository so that you can make changes directly and
have them shared with others in the LLVM community.
-- John T.
(*) For the curious, the project is named "giri" because, to the best of
my knowlege, this is a Japanese word that means "slice." I believe
"kiri" may be an alternate spelling.
> - Jin
> -----Original Message-----
> From: Criswell, John T [mailto:criswell at illinois.edu]
> Sent: Saturday, October 08, 2011 11:58 AM
> To: Jinwook Shin; llvmdev at cs.uiuc.edu
> Subject: RE: interprocedural static backwards slicing
> Dear Jin,
> I've talked with Vikram, and we agree that having this code (and a dynamic backwards slicing pass that Swarup and I wrote) in a publicly available SVN repository is a good thing.
> I'll try to get you a copy of the static slicing code some time next week (I should be able to work on it Monday morning) so that you can start working with it right away. I can work on making a proper LLVM sub-project (ala http://llvm.org/docs/Projects.html) later, although I don't know exactly when I can get to that (I've got some important work priorities to contend with in mid-October).
> -- John T.
> From: Jinwook Shin [Jinwook.Shin at microsoft.com]
> Sent: Thursday, October 06, 2011 12:59 PM
> To: Criswell, John T; llvmdev at cs.uiuc.edu
> Subject: interprocedural static backwards slicing
> Hello John et al -
> I have been struggling to implement static backwards slicing with LLVM.
> After digging llvmdev postings for some time, I see that other people were having similar difficulties and John's got almost complete code that may be shared. May I get a copy of it, too? Better yet, it would be helpful for many other people if the code were checked in to an example directory or something in the LLVM source branch.
> - Jin
More information about the llvm-dev