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

Jordan Rose jordan_rose at apple.com
Mon Feb 25 13:28:35 PST 2013


On Feb 25, 2013, at 13:23 , Ted Kremenek <kremenek at apple.com> wrote:

> 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.

Seems reasonable about PreStmtPurgeDeadSymbols, and sounds good for a 2% increase. Lvalues are good to have around for a variety of diagnostics.

Thanks for looking into this.
Jordan

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


More information about the cfe-commits mailing list