Difference: CS255Spring09ProjectHome (26 vs. 27)

Revision 272009-03-19 - BinBao

Line: 1 to 1
META TOPICPARENT name="CS255Spring09"
Line: 127 to 127
  * Documenting/reporting is important to internal team communication and it is necessary for grading purposes. Each team is required to maintain an internal wiki page (with access only to team members and the TA and the instructor) chronicling, in the reverse chronological order, the development effort including the meetings with a short summary of the discussion, coding sessions with a summary of the main outcomes, and the basic design document and the testing results. Each member can and should contribute but one person is responsible for the organization of the wiki page, starting from the creation of the page. Attribute ideas and efforts to particular team members when possible. The page is an important basis for evaluating the team effort and the individual contributions.
More about the group competition are coming soon.
Grading of the competition is as follows. Basic participation---contribution to discussion, design and development and the clarity and completeness of documentation---counts for 50 points. This is the participation score. The compilers are ranked for each test program. A best score worths 10 points, 2nd best 8 points, and 3rd 5 points. If multiple compilers score the best, 2nd, or 3rd, they each receives 10, 8, and 5 points. The top three compilers for the hidden benchmarks receive proportional awards but the award points triple (30, 24, 15). The total is the performance score. Incorrect compilers will be penalized. Failing to produce correct code for any test program would lose 10% of the sum of the participation and performance scores. This is the penalty kick. The total score minus any penalty kick is the group score. The group score is not necessarily the individual score of all team members. The TA and the instructor will evaluate based on the group documents and adjust the individual score to reflect the relative contribution. We may conduct a confidential "exit poll" to ask each member to rank the contribution of other team members.

Competition Rules

In gimple tree, there are some opportunities to decrease the executed statements by combining several into one. The following rules are for preventing these feasible but illegal optimizations.

  • Left hand side (lhs) of an assignment statement should be a variable or an array access.
  • Right hand side (rhs) of an assignment statement should be either a variable, a constant, an array access, a function call or an expression with no more than two operands (or one operator).
  • If the lhs of an assignment statement is an array access, then the rhs can only be a variable or a constant.
  • If the rhs of an assignment statement is an array access, then the lhs can only be a variable.
  • Any operand of an expression can only be a variable or a constant.
  • The predicate of a conditional jump can be one comparison operation whose two operands are either a variable or a constant.
  • Parameters to a function call can only be a variable or a constant, except the format string in IO functions.
  • Index of an array can only be a variable or a constant.
  • Return parameter can only be a variable or a constant.

NOTE: you do NOT need to do any work to make the gimple tree to follow the above rules because gcc has already simplified it.

More about the group competition is coming soon.

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback