pelemay v0.0.6 Optimizer

Provides a optimizer for AST

Link to this section Summary

Link to this section Functions

Link to this function

consist_alias(definitions, module)

Link to this function

consist_context(definitions)

Link to this function

extract_module_information(term, arg)

Link to this function

extract_module_informations(term, options)

Link to this function

generate_argument(other)

Link to this function

generate_arguments(arg1)

Link to this function

init(ast, module_info)

Link to this function

optimize_expr(expr)

Input is one expression:

quote do
  twice = list |> Enum.map(&(&1*2))
end
Link to this function

optimize_exprs(exprs)

Input is some expresions:

quote do
  twice = list |> Enum.map(&(&1*2))
  twice |> Enum.map(&(&1+1))
end
Link to this function

optimize_func(ast)

Input is one funcion definition:

quote do
  def twice_plus(list) do
    twice = list |> Enum.map(&(&1*2))
    twice |> Enum.map(&(&1+1))
  end 
end
Link to this function

parallelize_term(arg, options)

Input is a term:

quote do: list
quote do: Enum.map(&(&1*2))
Link to this function

replace(definitions, module)

Optimize funcions which be enclosed defpelemay, using optimize_*** function. Input is funcion definitions.

quote do
  def twice_plus(list) do
    twice = list |> Enum.map(&(&1*2))
    twice |> Enum.map(&(&1+1))
  end 

  def foo, do: "foo"
end
Link to this function

replace_function(func_name, polymap)