# HG changeset patch # User Doug Simon # Date 1358885217 -3600 # Node ID d4bc143c575a097fe43c36f594da74da312c4572 # Parent 65c5ba56ef3ca290f35ca7be81956aa78222fed1 replaced use of
in javadoc with

diff -r 65c5ba56ef3c -r d4bc143c575a graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Tue Jan 22 20:47:55 2013 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Tue Jan 22 21:06:57 2013 +0100 @@ -31,11 +31,11 @@ /** - * This class is the base class for all nodes, it represent a node which can be inserted in a {@link Graph}.
+ * This class is the base class for all nodes, it represent a node which can be inserted in a {@link Graph}.

* Once a node has been added to a graph, it has a graph-unique {@link #id()}. Edges in the subclasses are represented * with annotated fields. There are two kind of edges : {@link Input} and {@link Successor}. If a field, of a type * compatible with {@link Node}, annotated with either {@link Input} and {@link Successor} is not null, then there is an - * edge from this node to the node this field points to.
+ * edge from this node to the node this field points to.

* Nodes which are be value numberable should implement the {@link ValueNumberable} interface. * *

Assertions and Verification

diff -r 65c5ba56ef3c -r d4bc143c575a graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Tue Jan 22 20:47:55 2013 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Tue Jan 22 21:06:57 2013 +0100 @@ -36,31 +36,31 @@ /** * Builds a mapping between bytecodes and basic blocks and builds a conservative control flow graph (CFG). * It makes one linear passes over the bytecodes to build the CFG where it detects block headers and connects them. - *
+ *

* It also creates exception dispatch blocks for exception handling. These blocks are between a bytecode that might * throw an exception, and the actual exception handler entries, and are later used to create the type checks with the * exception handler catch types. If a bytecode is covered by an exception handler, this bytecode ends the basic block. * This guarantees that a) control flow cannot be transferred to an exception dispatch block in the middle of a block, and * b) that every block has at most one exception dispatch block (which is always the last entry in the successor list). - *
+ *

* If a bytecode is covered by multiple exception handlers, a chain of exception dispatch blocks is created so that * multiple exception handler types can be checked. The chains are re-used if multiple bytecodes are covered by the same * exception handlers. - *
+ *

* Note that exception unwinds, i.e., bytecodes that can throw an exception but the exception is not handled in this method, * do not end a basic block. Not modeling the exception unwind block reduces the complexity of the CFG, and there is no * algorithm yet where the exception unwind block would matter. - *
+ *

* The class also handles subroutines (jsr and ret bytecodes): subroutines are inlined by duplicating the subroutine blocks. * This is limited to simple, structured subroutines with a maximum subroutine nesting of 4. Otherwise, a bailout is thrown. - *
+ *

* Loops in the methods are detected. If a method contains an irreducible loop (a loop with more than one entry), a bailout is * thrown. This simplifies the compiler later on since only structured loops need to be supported. - *
+ *

* A data flow analysis computes the live local variables from the point of view of the interpreter. The result is used later * to prune frame states, i.e., remove local variable entries that are guaranteed to be never used again (even in the case of * deoptimization). - *
+ *

* The algorithms and analysis in this class are conservative and do not use any assumptions or profiling information. */ public final class BciBlockMapping { diff -r 65c5ba56ef3c -r d4bc143c575a graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java Tue Jan 22 20:47:55 2013 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/FrameMap.java Tue Jan 22 21:06:57 2013 +0100 @@ -38,7 +38,7 @@ * Therefore, outgoing arguments are indexed from the stack pointer, while spill slots * are indexed from the beginning of the frame (and the total frame size has to be added * to get the actual offset from the stack pointer). - *
+ *

* This is the format of a stack frame: *

  *   Base       Contents
@@ -68,7 +68,7 @@
  * 
* The spill slot area also includes stack allocated memory blocks (ALLOCA blocks). The size * of such a block may be greater than the size of a normal spill slot or the word size. - *
+ *

* A runtime has two ways to reserve space in the stack frame for its own use: