In any case, it shouldn't hurt to use an IdentityHashMap in this case, so I'd vote for pulling the change.

Eric Bodden <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 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>.
>
>—
>Reply to this email directly or view it on GitHub.￼
>