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