|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--harpoon.Analysis.Realtime.Realtime
Realtime
is the top-level access point for the rest of the
Harpoon compiler to provide support for the Realtime Java MemoryArea
extensions described in the
Realtime Java Specification and there's also a
JavaDoc version.
Field Summary | |
static int |
ALL
Overly aggressive (and wrong!) check removal that removes all checks. |
static int |
ANALYSIS_METHOD
Determine which analysis method to use. |
static int |
CHEESY_POINTER_ANALYSIS
Pointer analysis to determine whether checks can be removed |
static boolean |
COLLECT_RUNTIME_STATS
Add code to the executable to enable gathering of runtime statistics. |
static boolean |
DEBUG_REF
Add additional information on calls to RTJ_malloc to store information about the def. |
static boolean |
NOHEAP_CHECKS
Add checks to determine if a NoHeapRealtimeThread is
touching the heap. |
static boolean |
NOHEAP_MASK
Add masking support, but no checks |
static int |
REAL_POINTER_ANALYSIS
More complicated pointer analysis to determine which checks to remove. |
static boolean |
REAL_SCOPES
Are we going to actually allocate objects in the appropriate scopes? |
static boolean |
REALTIME_JAVA
Is Realtime JAVA support turned on? |
static boolean |
REALTIME_THREADS
Add support for realtime threads |
static boolean |
REMOVE_TAGS
Remove tagging when you remove all checks? |
static int |
SIMPLE
Very conservative analysis method - keep all checks |
Constructor Summary | |
Realtime()
|
Method Summary | |
static HCodeFactory |
addChecks(Linker linker,
ClassHierarchy ch,
HCodeFactory parent,
Set roots)
Adds realtime support to a block of code using an harpoon.ClassFile.HCodeFactory . |
static HCodeFactory |
addNoHeapChecks(HCodeFactory hcf)
Add checks to see if a NoHeapRealtimeThread
illegally touches the heap. |
static HCodeFactory |
addQuantaChecker(HCodeFactory hcf)
Add code to check to see if a realtime thread quanta has passed to determine whether to do a user-thread-level context switch. |
static void |
configure(String options)
Configure Realtime Java based on the following command-line options. |
static Collection |
getRoots(Linker linker)
Adds all methods required for RTJ in the rootset, including: javax.realtime.RealtimeThread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String) javax.realtime.RealtimeThread.memoryArea() javax.realtime.RealtimeThread.currentRealtimeThread() java.lang.Thread.setPriority(int) javax.realtime.MemoryArea.checkAccess(java.lang.Object) javax.realtime.MemoryArea.bless(java.lang.Object) javax.realtime.MemoryArea.bless(java.lang.Object, int[]) |
static void |
printStats()
Print statistics about the static analysis and addition of Realtime support. |
static HCodeFactory |
setupCode(Linker linker,
ClassHierarchy ch,
HCodeFactory parent)
Adds realtime support to a block of code using an harpoon.ClassFile.HCodeFactory . |
static void |
setupObject(Linker linker)
Creates a field memoryArea on java.lang.Object . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static boolean REALTIME_JAVA
public static boolean REAL_SCOPES
public static boolean REMOVE_TAGS
public static boolean REALTIME_THREADS
public static int ANALYSIS_METHOD
public static final int SIMPLE
public static final int CHEESY_POINTER_ANALYSIS
public static final int REAL_POINTER_ANALYSIS
public static final int ALL
public static boolean COLLECT_RUNTIME_STATS
public static boolean NOHEAP_CHECKS
NoHeapRealtimeThread
is
touching the heap.
public static boolean NOHEAP_MASK
public static boolean DEBUG_REF
Constructor Detail |
public Realtime()
Method Detail |
public static void configure(String options)
public static void setupObject(Linker linker)
java.lang.Object
.
Since primitive arrays inherit from java.lang.Object
,
this catches them as well.
public static Collection getRoots(Linker linker)
public static HCodeFactory setupCode(Linker linker, ClassHierarchy ch, HCodeFactory parent)
harpoon.ClassFile.HCodeFactory
. This includes
all of the pre-analysis modifications:
java.lang.Thread
now inherit from
javax.realtime.RealtimeThread
. java.lang.Thread
into a new
javax.realtime.RealtimeThread
.
public static HCodeFactory addChecks(Linker linker, ClassHierarchy ch, HCodeFactory parent, Set roots)
harpoon.ClassFile.HCodeFactory
. This includes the
analysis and all of the post-analysis modifications.
Object.memoryArea
).harpoon.IR.Quads.SET
s and
harpoon.IR.Quads.ASET
s.
public static HCodeFactory addNoHeapChecks(HCodeFactory hcf)
NoHeapRealtimeThread
illegally touches the heap.
public static HCodeFactory addQuantaChecker(HCodeFactory hcf)
public static void printStats()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |