CSC455 - Compilers

Team: Peanut Butter Tortoise

"Slow and steady wins the race."

Team Members : Roles

  • Chetan Bhole : Team Lead, Developer, Tester
  • Stan Park : Tester, Reporter
  • Amal Fahad : Developer, GCC Guru

Project Vision

  • Eat peanut butter.
  • Beat hare.

Project Plan

Performance is secondary. The main goal is to try to have correct code.

The following is the current tentative plan:

  • Decide how we will fuse the code created by different team members.
  • Find bugs that were present in the system.
  • Rectify bugs.
  • Brainstorm for ideas for improving performance of the system.

Session Summaries

080330

  • Time open: 9PM

    Developer: Amal

    Constant propagation part:

    the code I have now is able to:

    • propagate constant within a block
    • propagate a constant between continuous blocks as long as it appears in the set of all previous blocks of our block, and being assigned the same value in all, and not being killed in any of them
    • also check if any of the function arguments might be substituted with a constant.
    • handle a case:
      • b=10;
      • c=5;
      • a=b+c; the code I have will generate a=10 and add a to the set of the constant list , and the const_propagation function will be called again just in case a occur some where else later and can be substitute again by 10.
      what I need handle also :
      • handle the global variable
      • and check the code on the different open test cases

      080330

      • Time open: 745PM

        Attendees: Amal, Chetan, Stan

        Minute taker: Stan

        Agenda:

        • Discuss current status of const prop and VN
        • Identify some cases for further optimatization

        Discussion:

        • GCC will fold binary exprs involving 0 and 1 except for "a & 1" and "a/a"
        • VN for individual variables, more like propagation for particular variables

        Conclusions:

        • AI[4] for Stan: Add a pass to handle "a & 1" and "a/a"
        • AI[5] for Stan: Modify defuse construction to include information needed by Chetan's variable propagation.

        Open issues:

        • VN isn't handling both operands of a binary expr

        Time close: 834PM

      080329

      • Time open: 940PM

        Developers: Stan

        Tasks:

        • Add optimization pass to remove stmts of the format "x=x" which are generated by VN but not removed by dead code elimination.

        Change log:

        • Added pass "self_assign()" which removes stmts of the format "x=x"

        Open issues:

        • None.

        Time close: 945PM

      • Time: 700PM

        Attendees: Amal, Chetan, Stan

        Minute taker: Stan

        Agenda:

        • Go over pre-pass gimple code to look for missed optimizations.

        Discussion:

        • Constant prop is not folding stmts
        • Unary ops not handled in VN
        • AI[1] complete. Benchmark results posted earlier.

        Conclusions:

        • AI[2] for ALL: fix bugs in current optimizations
        • AI[3] for Stan: develop comprehensive test program to try to exercise the optimizations.

        Open issues:

        • DVN or SVN?
        • Additional optimizations?
        • Need more peanut butter.

        Time close: 749PM

      • Time open: 300PM

        Developers: Stan

        Tasks:

        • Merge updated VN and const prop
        • Make defuse and dead code marking more intelligent for arrays
        • Recheck some benchmarks

        Change log:

        • Updated Chetan's VN
        • Updated Amal's const prop
        • Modified find_uses():
          • When checking for the uses of an array, added comparison for base array equality
          • Made function calls a def kill for globals
          • Made function call with pass-by-ref a def kill
        • Modified defuse_list_el_t:
          • Added "int global" flag
          • Added "int array" flag
        • Modified dead_code_elim:
          • Removed auto-marking for array accesses
          • Added marking for global defs
        • trivia benchmark count: 76 -> 73

        Open issues:

        • jacobi, multiply, and sort benchmarks are unchanged

        Time close: 416PM

        -- StanPark - 29 Mar 2008

      080328

      • Time open: 500PM

        Developers: Chetan

        Change log:

        • Corrected value numbering to take care of global variables.
        • Removed a bug to now detect constants in the modify expression.
        • Created gimple output files for the given open test cases to analyse for optimization

        Open issues:

        • Will we need to take care of value numbering for functions other than printf and scanf for the test cases?

        Time close: 515PM

        -- ChetanBhole - 28 Mar 2008

      080326

      • Time open: 800PM

        Developers: Chetan, Stan

        Tasks:

        • Merge code for open benchmarking.

        Change log:

        • Added Chetan's value numbering to Stan's. Due to bugs, benchmarks were produced using only Stan's code.

        Open issues:

        • Chetan has unresolved bugs in value numbering.

        Time close: 831PM

        -- StanPark - 26 Mar 2008

      • Time open: 700PM

        Attendees: Amal, Chetan, Stan

        Minute taker: Stan

        Agenda:

        • Code merge for initial benchmarks

        Discussion:

        • Use of VEC or linked lists.
        • Use of global structures for holding data flow information

        Conclusions:

        • AI[1] for Stan, Chetan: For initial benchmarking, use Stan's dead code and constant prop and Chetan's value numbering as well as running Stan's and Chetan's code bases separately.
        • Amal will try VEC but has Stan's code for linked lists if necessary.
        • Try to keep each pass as independent as possible for debugging purposes, so each pass will keep its own bookkeeping structures.
        • AI[2] for ALL: Fix bugs in all passes.

        Open issues:

        • DVN or SVN?
        • Fix bugs in all passes.
        • Additional optimizations?
        • Need more peanut butter.

        Time close: 751PM

      080325

      • Time open: 630PM

        Attendees: Chetan, Amal, Stan

        Minute taker: Stan

        Agenda:

        • Who has working optimizations
        • Code merging

        Discussion:

        • Chetan has value numbering. Bugs:
          • Doesn't include initial constants
          • Globals
          • Function parameters
        • Amal has constant prop. Bugs:
          • Constants only propagate from the immediate predecessor
        • Stan has dead code elimination. Bugs:
          • Immediately marks array accesses

        Conclusions:

        • None

        Open issues:

        • DVN or SVN?
        • Fix bugs in all passes.
        • Additional optimizations?
        • Need more peanut butter.

        Time close: 706PM

        -- StanPark - 25 Mar 2008

      080324

      Tag and Naushad stole our idea of having a motto. And they may claim that we will claim that it is stolen. -- StanPark - 24 Mar 2008

      080323

      Made this wiki page today. -- StanPark - 23 Mar 2008

Edit | Attach | Watch | Print version | History: r36 | r19 < r18 < r17 < r16 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r17 - 2008-03-31 - AmalFahad
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback