r175988 - [analyzer] tracking stores/constraints now works for ObjC ivars or struct fields.

Ted Kremenek kremenek at apple.com
Mon Feb 25 13:23:23 PST 2013


I found one possible optimization opportunity that recovers most of this cost.  It occurs to me that ExplodedNodes with a ProgramPoint of PreStmtPurgeDeadSymbols are no longer needed after they have a single successor.  That is, we use them as a mechanism for processing work in ExprEngine, but they don't appear to be used by any client code in the analyzer once we are done removing dead bindings and have generated a PostStmtPurgeDeadSymbols node.

With that optimization added on to the extra retained nodes for "interesting lvalue expressions", I only see a 2% increase in memory usage from the original baseline before my change.  While that isn't totally awesome, I think that's far more acceptable since it really improves the fidelity of our diagnostics.

On Feb 25, 2013, at 12:57 PM, Ted Kremenek <kremenek at apple.com> wrote:

> I did not trust that number, so I gather the statistics more correctly.  In the worst case I see a 20% increase in nodes, and a 14% increase in memory usage.  That's pretty big.  I'll see if I can improve things here.
> 
> On Feb 24, 2013, at 10:20 PM, Ted Kremenek <kremenek at apple.com> wrote:
> 
>> When I did this, the maximum number of extra nodes not reclaimed for a given ExplodedGraph when analyzing Sema.cpp was 57303, which for that case was a 2.89% increase in the size of the ExplodedGraph.  That was about the worst case that I saw.
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130225/41429987/attachment.html>


More information about the cfe-commits mailing list