Removing DSA from LLVM

Dear All,

We'd like to move the Data Structure Analysis (DSA) code from the LLVM
source tree (lib/Analysis/DataStructure) into the Pool Allocation
project. I plan on starting this move next week Tuesday. If this
change somehow affects you and you need me to wait, please email me and
let me know. Otherwise, I assume Tuesday is good.

-- John T.

I apologize if this has been answered previously, but why is DSA being removed from LLVM? I ask because I am currently using the latest CVS versions of LLVM and DSA.

Regards,
Ryan

John Criswell wrote:

I apologize if this has been answered previously, but why is DSA being
removed from LLVM? I ask because I am currently using the latest CVS
versions of LLVM and DSA.

There are two reasons for doing this:

1. DSA is currently only used by llvm-poolalloc.
2. More seriously, DSA infringes on certain patents held by Microsoft,
    regarding unification-based points-to analysis. While DSA isn't linked
    into llvm-gcc by default and thus is currently only accessible through
    opt, the inclusion of known-to-infringe code in the main LLVM
    repository makes some people/organizations nervous.

Considering that it is really easy to check out projects and they transparently integrate into LLVM, it seems like there is no harm to move it out. To get it, you should just be able to do:

cd llvm/projects/; cvs co llvm-poolalloc.

-Chris

John Criswell wrote:

Dear All,

We'd like to move the Data Structure Analysis (DSA) code from the LLVM
source tree (lib/Analysis/DataStructure) into the Pool Allocation
project. I plan on starting this move next week Tuesday. If this
change somehow affects you and you need me to wait, please email me and
let me know. Otherwise, I assume Tuesday is good.

-- John T.

_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-Chris

As Chris said, this is primarily to avoid infringing published Microsoft patents (Steensgard's patents on pointer analysis using unification and union-find data structures). DSA is a research product but it is intended to be a more powerful alias, mod-ref, and call graph analysis than the default ones in LLVM. If you are interested, it should not be difficult to use DSA from the llvm-poolalloc project.

--Vikram