Optimize before lambda lifting

(lambdas are either in dead code or not dead, so dead code elimination won't be affected)
This commit is contained in:
Ulf Norell 2019-09-02 11:17:13 +02:00
parent 499e2f8200
commit e645a8d034

View File

@ -151,10 +151,10 @@ ast_to_fcode(Code, Options) ->
Verbose = lists:member(pp_fcode, Options),
FCode1 = to_fcode(init_env(Options), Code),
[io:format("-- Before lambda lifting --\n~s\n\n", [format_fcode(FCode1)]) || Verbose],
FCode2 = lambda_lift(FCode1),
[ io:format("-- After lambda lifting --\n~s\n\n", [format_fcode(FCode2)]) || Verbose, FCode2 /= FCode1 ],
FCode3 = optimize_fcode(FCode2),
[ io:format("-- After optimization --\n~s\n\n", [format_fcode(FCode3)]) || Verbose, FCode3 /= FCode2 ],
FCode2 = optimize_fcode(FCode1),
[ io:format("-- After optimization --\n~s\n\n", [format_fcode(FCode2)]) || Verbose, FCode2 /= FCode1 ],
FCode3 = lambda_lift(FCode2),
[ io:format("-- After lambda lifting --\n~s\n\n", [format_fcode(FCode3)]) || Verbose, FCode3 /= FCode2 ],
FCode3.
%% -- Environment ------------------------------------------------------------