pelemay v0.0.5 Optimizer

Provides a optimizer for AST

Link to this section Summary

Functions

Input is one expression

Input is some expresions

Input is one funcion definition

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

Link to this section Functions

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(term, options)

Input is a term:

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

replace(definitions, caller)

Optimize funcions which be enclosed defptermay, 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