[LLVMdev] Sparse propagation framework

Mark Lacey superoptimizer at gmail.com
Wed May 27 21:13:06 PDT 2009


On Wed, May 27, 2009 at 7:11 PM, Bill Wendling <isanbard at gmail.com> wrote:

> On Wed, May 27, 2009 at 5:26 PM, Mark Lacey <superoptimizer at gmail.com>
> wrote:
> > I noticed in the 2.4 release notes that a sparse propagation framework
> had
> > been added based on the SCCP algorithm. I might have a need for exactly
> this
> > kind of framework in order to prototype an analysis I have in mind.
> >
> > I also noticed, however, that this doesn't appear to be in use at this
> time.
> >
> It is being used:
>
> opt.cpp:
>
> void AddStandardCompilePasses(PassManager &PM) {
> ...
>  addPass(PM, createSCCPPass());                 // Constant prop with
> SCCP
>
>
> and in gcc/llvm-backend.cpp:
>
> static void createPerModuleOptimizationPasses() {
> ...
>      PM->add(createSCCPPass());                  // Constant prop
> with SCCP
>

I guess I wasn't clear. I was referring to the code in
  include/llvm/Analysis/SparsePropagation.h
and
  lib/Analysis/SparsePropagation.cpp
which use the same optimistic worklist based algorithm that SCCP uses, but
allow for pluggable lattices/transfer-functions via subclassing the
AbstractLatticeFunction class.

It looks like this was written to be a more general framework that worklist
based algorithms (esp. ones that have a notion of executable edges) could be
built on, but was never used within LLVM.

Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090527/d0d82410/attachment.html>


More information about the llvm-dev mailing list