From c2073933a430434351ece355ba04d37fdad693ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Muska=C5=82a?= <michal@muskala.eu>
Date: Sat, 4 Aug 2018 23:00:55 +0200
Subject: Eliminate double computation of next var

My compiler benchmarks on modules with huge functions, show the
next_free_variable_name call to be expensive. It turns out one
of the 3 calls to the function was completely ignored.
---
 lib/compiler/src/sys_core_fold.erl | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/lib/compiler/src/sys_core_fold.erl b/lib/compiler/src/sys_core_fold.erl
index ceb7d56221..617411ed56 100644
--- a/lib/compiler/src/sys_core_fold.erl
+++ b/lib/compiler/src/sys_core_fold.erl
@@ -115,13 +115,6 @@ module(#c_module{defs=Ds0}=Mod, Opts) ->
     {ok,Mod#c_module{defs=Ds1},get_warnings()}.
 
 function_1({#c_var{name={F,Arity}}=Name,B0}) ->
-    %% Find a suitable starting value for the variable counter. Note
-    %% that this pass assumes that new_var_name/1 returns a variable
-    %% name distinct from any variable used in the entire body of
-    %% the function. We use integers as variable names to avoid
-    %% filling up the atom table when compiling huge functions.
-    Count = cerl_trees:next_free_variable_name(B0),
-    put(new_var_num, Count),
     try
         %% Find a suitable starting value for the variable
         %% counter. Note that this pass assumes that new_var_name/1
-- 
cgit v1.2.3