|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object edu.uci.eecs.doc.clepsydra.Clepsydra
public class Clepsydra
This is the main class for the Clepsydra tool. It contains an entry point (main) for command-line execution, as well as helper methods for performing the timing analysis.
Constructor Summary | |
---|---|
Clepsydra(List<String> classPath)
Creates a new Clepsydra object. |
|
Clepsydra(String classPath)
Creates a new Clepsydra object. |
Method Summary | |
---|---|
Map<Integer,Integer> |
getBackAnnotations(Method method,
String sourceCode,
InstructionTimingStrategy instructionTimings,
LoopBoundStrategy loopBounds,
MethodCacheStrategy methodCache)
Returns a mapping between source code and WCET timings. |
List<String> |
getClassPath()
Returns the class path that was specified when the Clepsydra object was created. |
int |
getWCET(Method method,
AnalysisStrategy strategy)
Computes an upper bound on the WCET of the given method using the specifed analysis strategy. |
int |
getWCET(Tree tree,
Graph graph,
AnalysisStrategy strategy)
Computes an upper bound on the WCET of a method using the specifed analysis strategy. |
static void |
main(String[] args)
An entry point for invoking Clepsydra from the command line. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Clepsydra(List<String> classPath)
classPath
- a list of directories that will be searched when loading
classes during control flow constructionpublic Clepsydra(String classPath)
classPath
- a list of directories, separated by the system's path separator
character, that will be searched when loading classes during control flow
constructionMethod Detail |
---|
public static void main(String[] args)
args
- a list of command line argumentspublic List<String> getClassPath()
public int getWCET(Method method, AnalysisStrategy strategy) throws IOException, NoSuchMethodException, ClassNotFoundException, UnknownTimingException, UnknownLoopBoundException
method
- the method whose WCET is to be computedstrategy
- the strategy to use when performing the computation
IOException
- if the method cannot be loaded
NoSuchMethodException
- if the method cannot be found
ClassNotFoundException
- if the method's class cannot be found
UnknownTimingException
- if the method contains an instruction whose
timing is unknown
UnknownLoopBoundException
- if the method contains a loop whose upper
bound cannot be determinedpublic int getWCET(Tree tree, Graph graph, AnalysisStrategy strategy) throws UnknownTimingException, UnknownLoopBoundException
getWCET(Method, AnalysisStrategy)
for
performance reasons. (Otherwise, the method will be reloaded and its control
flow tree and graph will be reconstructed.)
tree
- the control flow tree of the methodgraph
- the control flow graph of the methodstrategy
- the strategy to use when performing the computation
UnknownTimingException
- if the method contains an instruction whose
timing is unknown
UnknownLoopBoundException
- if the method contains a loop whose upper
bound cannot be determinedgetWCET(Method, AnalysisStrategy)
public Map<Integer,Integer> getBackAnnotations(Method method, String sourceCode, InstructionTimingStrategy instructionTimings, LoopBoundStrategy loopBounds, MethodCacheStrategy methodCache) throws IOException, NoSuchMethodException, ClassNotFoundException, UnknownTimingException, UnknownLoopBoundException, UnknownLineNumberException
TreeAnalysisStrategy
is used to compute these timings.
method
- the method whose WCET mapping is to be computedsourceCode
- the source code in which the method was declared; must be
legal code (free of any compiler errors)instructionTimings
- a model of the temporal properties of the target CPUloopBounds
- a strategy for computing the upper bound on loopsmethodCache
- a strategy for modeling the method cache
IOException
- if the method cannot be loaded
NoSuchMethodException
- if the method cannot be found
ClassNotFoundException
- if the method's class cannot be found
UnknownTimingException
- if the method contains an instruction whose
timing is unknown
UnknownLoopBoundException
- if the method contains a loop whose upper
bound cannot be determined
UnknownLineNumberException
TreeAnalysisStrategy
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |