Version 2 (modified by eamiri, 9 years ago) (diff)


This file includes short notes related to the current version of the compiler.

Conversion to SSA

1- The body of a while loop is not converted to SSA.

Optimize Pragma

1- The location of Optimize pragma inside the program does not change its semantics. 2- The code that is optimized by the pragma starts from the first line after the last definition of the optimized variable through end of the program.

Dead Code Elimination

1- A common subexpression elimination must be called after the end of dead code elimination to remove common subexpressions introduced by remove_copies()

While Loop and Optimize interaction

1- If Optimize is called on a variable whose last definition is inside the body of a loop, the corresponding if-then-else will start right after that while loop.

2- Optimize cannot be used for a loop variable.

Abstract Syntax Tree

1- An idea: Keep the internal representation of the program in the compiler consistent with Python as long as possible. This allows us to use tools developed for Python.

Performance of the Compiler

1- Currently the a seriously time consuming operation in the compiler is copy.deepcopy(). All invocations of copy.deepcopy() must be check and all unnecessary ones must be removed.