I am not sure it's any faster if the element type does not overwrite equals. Note that current VMs have quite advanced inlining.

On Dec 26, 2013 9:34 PM, =?ISO-8859-1?Q?Marc-Andr=E9_Laverdi=E8re?= <notifications@github.com> wrote:

In src/soot/toolkits/scalar/AbstractFlowAnalysis.java:

> @@ -54,7 +54,7 @@
>      /** Constructs a flow analysis on the given <code>DirectedGraph</code>. */
>      public AbstractFlowAnalysis(DirectedGraph<N> graph)
>      {
> -        unitToBeforeFlow = new HashMap<N,A>(graph.size() * 2 + 1, 0.7f);
> +        unitToBeforeFlow = new IdentityHashMap<N,A>(graph.size() * 2 + 1);


I think that IdentityHashMap uses == instead of .equals(), which is much faster. Marc-André Laverdière-Papineau Doctorant - PhD Candidate
…
On 12/26/2013 06:55 AM, Eric Bodden wrote: In src/soot/toolkits/scalar/AbstractFlowAnalysis.java: > @@ -54,7 +54,7 @@ > /** Constructs a flow analysis on the given <code>DirectedGraph</code>. */ > public AbstractFlowAnalysis(DirectedGraph<N> graph) > { > - unitToBeforeFlow = new HashMap<N,A>(graph.size() * 2 + 1, 0.7f); > + unitToBeforeFlow = new IdentityHashMap<N,A>(graph.size() * 2 + 1); Why is this necessary? Units should normally not implement equals() anyway... — Reply to this email directly or view it on GitHub <https://github.com/Sable/soot/pull/162/files#r8554907>.

—
Reply to this email directly or view it on GitHub<https://github.com/Sable/soot/pull/162/files#r8559933>.