[erlang-questions] Compiler and tautologies
Adam Lindberg
adam@REDACTED
Thu Mar 19 09:22:58 CET 2009
Nice tip, thanks guys!
Cheers,
Adam
----- "Erik Stenman" <erik.stenman@REDACTED> wrote:
> On 19 mar 2009, at 08.55, Adam Lindberg wrote:
>
> > Hi!
> >
> > Does the Erlang compiler optimize code such as:
> >
> > f() -> case true of true -> ok end.
> >
> > To this?
> >
> > f() -> ok.
>
> When in doubt try
> erlc -S
> Which will give you an .S file:
> e.g.
> ---
> -module(f).
> -export([f/0]).
>
> f() -> case true of true -> ok end.
> ---
> makrill> erlc -S f.erl
> makrill> cat f.S
> {module, f}. %% version = 0
> {exports, [{f,0},{module_info,0},{module_info,1}]}.
> {attributes, []}.
> {labels, 7}.
>
> {function, f, 0, 2}.
> {label,1}.
> {func_info,{atom,f},{atom,f},0}.
> {label,2}.
> {move,{atom,ok},{x,0}}.
> return.
>
> {function, module_info, 0, 4}.
> {label,3}.
> {func_info,{atom,f},{atom,module_info},0}.
> {label,4}.
> {move,{atom,f},{x,0}}.
> {call_ext_only,1,{extfunc,erlang,get_module_info,1}}.
>
> {function, module_info, 1, 6}.
> {label,5}.
> {func_info,{atom,f},{atom,module_info},1}.
> {label,6}.
> {move,{x,0},{x,1}}.
> {move,{atom,f},{x,0}}.
> {call_ext_only,2,{extfunc,erlang,get_module_info,2}}.
>
>
> >
> >
> > I'm working with Erlang code generation in a customer's product and
>
> > I wonder if I need to optimize away such code myself or not.
>
> The compiler does this for you.
>
> /Erik
More information about the erlang-questions
mailing list