Subject: C440 JGSI Review Resent-Date: Thu, 30 Sep 1999 23:19:15 -0400 Resent-From: Geoffrey Fox Resent-To: p_gcf@npac.syr.edu Date: Mon, 20 Sep 1999 00:53:31 -0600 From: "David S. Dixon" Organization: Least Squares Software, LLC To: Geoffrey Fox 1. Overall ******** This is an interesting, if long, article on an elaborate annotation scheme to improve the performance of native code from JIT compilers. There are many detailed illustrations. 2. Comments for Author(s) ********************* This article is filled with fascinating facts and is compiler jargon intensive. It could be somewhat shorter and more concise. It was clear from the article that a great deal of thought and planning went into the annotation scheme, but it wasn't clear why. What are the principal optimizations achieved? How much do they save? How robust/portable/safe are they? If these three points could be addressed directly -- early on -- it would help an outsider like me to understand the topic and this paper. With regard to safety, a great deal is said about it in section 4, but the outcome is unclear. Stylistic notes: be consistent in the number of words like annotation(s), bytecode(s), format(s), variable(s), and register(s). It is common to make modifiers from the singular, i.e. "annotation registers" rather than "annotations registers". An example from sentence 5 in para 1 of section 1; this sentence would read more naturally as "Such checks include enforcement of method and variable access modifiers..." rather than "...methods and variables access modifiers..." Acronyms. A few acronyms pop up without explanation, or are explained much later than the first time they appear. For example, VRA appears near the top of page 4, but isn't defined until the top of page 5. What is AJBC? * Number disagreement - Second sentence, para 2, page 6, should be "Each SRC, EXTRA and DEST field holds virtual register numbers..." * Preposition missing - First sentence, para 2, page 7, should be "The choice of in which virtual register to hold..." * Typo - Third sentence, first para section 3, should be "...on a few number of files and consisted of the design...". * Broken infinitive - Fourth sentence, para 2, page 13, should be "...do not allow variables of different type to share the same virtual..." * Confused sentence - Sixth sentence, para 3, beginning "The verification process for the isub operation..." number disagreement, subject/object, etc. * Article missing - Twelfth sentence, para 3, should be "The situation described above is similar to a malicious change..." * Number disagreement, missing preposition - Last sentence, para 4, should be "This extra rule that checks for register reuse helps in identifying invalid annotated bytecode streams." * Extra word - Third sentence, para 2, page 16, should be "...as well as an evaluation of run-time complexity." * Extra word - Sixth sentence, para 3, page 17, shoudl be "...accomplish the same, implying an expensive run-time algorithm." * Typo - Second sentence, para 2, page 23, should be "For these bytecode operations we made explicit the array..." * Missing article - Third sentence, para 2, page 25, should be "...the finally block and has as an argument the address..." * Typo - Second sentence, para 3, page 25, should be "...to the key arguments being tested." * Number disagreement - Third sentence, para 4, page 25, should be "These method calls take as arguments as many virtual registers..." * Missing article - Second sentence, para 2, page 29, should be "...requiring synchronized access as an argument." 3. Comments for Editor(s) ******************** None.