I’m relatively new to LLVM (but not optimizing compilers), and have been reading docs and browsing code.
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.
Are there plans to reimplement SCCP and/or other analyses/optimizations using this framework? Is the framework known to generally work? I searched the bug database but didn’t find anything that looked related.
I'm relatively new to LLVM (but not optimizing compilers), and have been
reading docs and browsing code.
Bienvenue!
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.
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.