Changes between Version 7 and Version 8 of compiler/tnotes

Mar 12, 2010, 11:28:20 AM (9 years ago)



  • compiler/tnotes

    v7 v8  
    31313- 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.
     334- We have an input language and an output language. Since input language is high level, it hides some details of the output language. A specific example is carry variables. There are two problems with the current approach.[[BR]]
     34   4-1 The level of abstraction is lowered in the compiler implicitly during Translation pass. It should be clear in which passes of the compiler the level of abstraction is lowered. [[BR]]
     35   4-2 The classes bitexpr.Add and bitexpr.Sub has been designed with C output in mind. They should not be target dependent as in the optimizer, we want to stay independent of the output language. One may require that class Add distinguishes carry in and carry out         variables. [[BR]]
     36   4-3 Right now we have two different implementations of Advance, one uses addition and the other one does not. The current architecture of the compiler assumes that the implementation of Advance is based on addition. One may ask require the architecture of the compiler to have this property. If we come up with a new implementation for a bitutil function, the compiler can be configured such that it generates output code that uses the new implementation.