avrora.sim.dbbc
Class DBBC

java.lang.Object
  extended byavrora.sim.dbbc.DBBC

public class DBBC
extends java.lang.Object


Nested Class Summary
static class DBBC.CodeBlock
           
protected  class DBBC.CodeGenerator
           
static class DBBC.CompiledBlock
           
protected  class DBBC.DBBCClassLoader
           
 
Field Summary
 Option.Bool ALLOW_REGISTER_UPDATES
           
 Option.Str CACHE_DIRECTORY
           
 Option.Bool CACHE_REGISTERS
           
protected  ControlFlowGraph cfg
           
protected  java.util.HashMap codeBlockMap
           
protected  java.util.HashMap compiledCodeMap
           
 Option.Bool CONSTANT_PROPAGATION
           
 Option.Bool DEAD_CODE_ELIMINATION
           
protected static java.util.HashMap globalMap
           
 Option.Bool INTRA_BLOCK_PROBING
           
protected  DBBC.DBBCClassLoader loader
           
 Option.Long MINIMUM_BLOCK_SIZE
           
 Options options
           
protected  Verbose.Printer printer
           
protected  Program program
           
 Option.Bool REUSE_CACHE
           
 Option.Bool TEMP_COALLESCING
           
protected  java.lang.String tmpDir
           
 Option.Bool USE_REGISTER_ARRAY
           
 
Constructor Summary
DBBC(Program p, Options o)
           
 
Method Summary
protected static void add(java.lang.String s)
           
protected  java.lang.String className(java.lang.String cname)
           
protected  java.io.File compileGeneratedCode(java.io.File f)
           
protected  java.io.File generateClassForCode(int addr, java.util.List stmts, int wcet)
           
 DBBC.CodeBlock getCodeBlock(int addr)
           
 DBBC.CompiledBlock getCompiledBlock(DBBC.CodeBlock b)
           
 DBBC.CompiledBlock getCompiledBlock(int addr)
          The getCompiledBlock() method instructs the DBBC to compile the basic block that begins at the specified byte address.
 Program getProgram()
           
 void invalidateBlock(int addr)
          The invalidateBlock() method invalidates any compiled copies of the block that contains the specified program address.
protected  java.lang.String javaName(java.lang.String cname)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

globalMap

protected static java.util.HashMap globalMap

options

public final Options options

printer

protected final Verbose.Printer printer

MINIMUM_BLOCK_SIZE

public final Option.Long MINIMUM_BLOCK_SIZE

USE_REGISTER_ARRAY

public final Option.Bool USE_REGISTER_ARRAY

CACHE_REGISTERS

public final Option.Bool CACHE_REGISTERS

ALLOW_REGISTER_UPDATES

public final Option.Bool ALLOW_REGISTER_UPDATES

DEAD_CODE_ELIMINATION

public final Option.Bool DEAD_CODE_ELIMINATION

CONSTANT_PROPAGATION

public final Option.Bool CONSTANT_PROPAGATION

TEMP_COALLESCING

public final Option.Bool TEMP_COALLESCING

INTRA_BLOCK_PROBING

public final Option.Bool INTRA_BLOCK_PROBING

REUSE_CACHE

public final Option.Bool REUSE_CACHE

CACHE_DIRECTORY

public final Option.Str CACHE_DIRECTORY

program

protected final Program program

cfg

protected final ControlFlowGraph cfg

loader

protected final DBBC.DBBCClassLoader loader

tmpDir

protected final java.lang.String tmpDir

codeBlockMap

protected final java.util.HashMap codeBlockMap

compiledCodeMap

protected final java.util.HashMap compiledCodeMap
Constructor Detail

DBBC

public DBBC(Program p,
            Options o)
Method Detail

getProgram

public Program getProgram()

invalidateBlock

public void invalidateBlock(int addr)
The invalidateBlock() method invalidates any compiled copies of the block that contains the specified program address. This might be called as the result of a write to program memory (flash update) or insertion of a probe into the middle of a basic block.

Parameters:
addr - the byte address for which the enclosing block should be invalidated

getCompiledBlock

public DBBC.CompiledBlock getCompiledBlock(int addr)
                                    throws java.lang.Exception
The getCompiledBlock() method instructs the DBBC to compile the basic block that begins at the specified byte address.

Parameters:
addr - the byte address of the beginning of the basic block to compile
Returns:
a reference to the compiled block of code when complete
Throws:
java.lang.Exception

getCodeBlock

public DBBC.CodeBlock getCodeBlock(int addr)

generateClassForCode

protected java.io.File generateClassForCode(int addr,
                                            java.util.List stmts,
                                            int wcet)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

getCompiledBlock

public DBBC.CompiledBlock getCompiledBlock(DBBC.CodeBlock b)
                                    throws java.lang.Exception
Throws:
java.lang.Exception

compileGeneratedCode

protected java.io.File compileGeneratedCode(java.io.File f)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

add

protected static void add(java.lang.String s)

javaName

protected java.lang.String javaName(java.lang.String cname)

className

protected java.lang.String className(java.lang.String cname)