google/souper — pull request #17 by regehr (2014-06-11 02:57:25+00:00)
Title: add in-memory caching using a proxy Solver class that intercepts solver ...

...requests

and, if the Souper IR has been seen before, answers with the cached result;
there tend to be a lot of hits when Souper is run as an LLVM pass since we're
called multiple times with very similar code

also some associated refactoring: Pass no longer sees CandidateMapEntries, and
the CandidateMapEntry::getQuery() method is gone with its code moved into a new
BuildQuery() function