Changes between Version 4 and Version 5 of compiler/tnotes


Ignore:
Timestamp:
Mar 10, 2010, 11:38:18 AM (9 years ago)
Author:
eamiri
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • compiler/tnotes

    v4 v5  
    1313
    1414[[BR]]
    15 == Dead Code Elimination ==
    16 1- A common subexpression elimination must be called after the end of dead code elimination to remove common subexpressions introduced by remove_copies()
    17 
    18 [[BR]]
    1915== While Loop and Optimize interaction ==
    20161- 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.
     
    2420
    2521[[BR]]
    26 == Abstract Syntax Tree ==
    27 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.
    28 
    29 [[BR]]
    3022== Performance of the Compiler ==
    31231- 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.
    3224
    33 
     25= Problems in the Current Architecture =
     261- A common subexpression elimination must be called after the end of dead code elimination to remove common subexpressions introduced by remove_copies()
     272- Symbol tables requires better design. Sometimes we need to collapse while loop and do not count it's body, and sometime we need to expand this. Also currently we construct symbol table twice in the code. One for SSA and one for basic block creation. We need to construct the symbol table just once, so that it responds to both queries.
     283- The code in normalize does three tasks: conversion to three address code, simplification using boolean algebra and common subexpression elimination. The three must be separated. At least the last two should become independent components.