Otawa  0.10
AST Plugin

This module provides facilities to handle an executable as an AST (Abstract Syntactic Tree). More...

Classes

class  otawa::ast::AST
 This is the base class for the representation of programs as Abstract Syntax Trees. More...
 
class  otawa::ast::ASTLoader
 This class may be used for loading AST from an external file using the Heptane format (see doc/ directory for more details). More...
 
class  otawa::ast::ASTInfo
 This class stores all the function known for the current framework. More...
 
class  otawa::ast::BlockAST
 This class represents the leafs of the AST. More...
 
class  otawa::ast::CallAST
 This class is a specialized block AST ended by a function call. More...
 
class  otawa::ast::DoWhileAST
 Representation of C do{ ... More...
 
class  otawa::ast::ForAST
 Representation of C language FOR loop. More...
 
class  otawa::ast::FunAST
 This class represents functions in the AST representation. More...
 
class  otawa::ast::IfAST
 AST for representing selections. More...
 
class  otawa::ast::ASTProcessor
 This is a specialization of the processor class dedicated to AST processing. More...
 
class  otawa::ast::FunProcessor
 This is a specialization of the processor class dedicated to function processing. More...
 
class  otawa::ast::SeqAST
 This AST represents sequences. More...
 
class  otawa::ast::WhileAST
 Representation of an iteration with test at start of the loop. More...
 

Functions

p::feature otawa::ast::FEATURE ("otawa::ast::FEATURE", new Maker< ASTLoader >())
 This feature ensures that the AST structure of the binary has been loaded. More...
 
Identifier< Stringotawa::ast::PATH ("otawa::ast::PATH","")
 This identifier may be passed for specifying the path a file for loading the AST. More...
 
Identifier< ASTInfo * > otawa::ast::INFO ("otawa::ast::INFO", 0)
 Identifier of the property storing the AST information on the framework object. More...
 
Identifier< FunAST * > otawa::ast::FUN ("otawa::ast::FUN", 0)
 A property with this identifier is put on each instruction, start of an AST function. More...
 

Variables

p::feature otawa::ast::FEATURE
 This feature ensures that the AST structure of the binary has been loaded. More...
 
Identifier< String > otawa::ast::PATH
 This identifier may be passed for specifying the path a file for loading the AST. More...
 
Identifier< ASTInfo * > otawa::ast::INFO
 Identifier of the property storing the AST information on the framework object. More...
 
Identifier< FunAST * > otawa::ast::FUN
 A property with this identifier is put on each instruction, start of an AST function. More...
 

Detailed Description

This module provides facilities to handle an executable as an AST (Abstract Syntactic Tree).

This allows to implements ETS (Extending Timing Schema) approach to compute the WCET as in:

S.S. LIM, Y.H. BAE, G.T. JANG, S.L. MIN, C.Y. PARK, H. SHIN, H., C.S. KIM, C. S. An accurate worst case timing analysis for RISC processors. IEEE transactions on software engineering, 21(7), 593-604, 1995.

The AST is loaded from an external file (usually generated from source files) in the same format as Heptane tool (http://www.irisa.fr/alf/index.php?option=com_content&view=article&id=29&Itemid=0).

Plugin Information

Function Documentation

p::feature otawa::ast::FEATURE ( "otawa::ast::FEATURE"  ,
new Maker< ASTLoader >  () 
)

This feature ensures that the AST structure of the binary has been loaded.

Configuration

Properties

Identifier<FunAST *> otawa::ast::FUN ( "otawa::ast::FUN"  ,
 
)

A property with this identifier is put on each instruction, start of an AST function.

Its value is of type "AST *".

Hook

Feature

  • otawa::ref::FEATURE
Identifier<ASTInfo *> otawa::ast::INFO ( "otawa::ast::INFO"  ,
 
)

Identifier of the property storing the AST information on the framework object.

Hook

Feature

Identifier<String> otawa::ast::PATH ( "otawa::ast::PATH"  ,
""   
)

This identifier may be passed for specifying the path a file for loading the AST.

Feature

Variable Documentation

p::feature otawa::ast::FEATURE("otawa::ast::FEATURE", new Maker< ASTLoader >())

This feature ensures that the AST structure of the binary has been loaded.

Configuration

Properties

Identifier<FunAST *> otawa::ast::FUN("otawa::ast::FUN", 0)

A property with this identifier is put on each instruction, start of an AST function.

Its value is of type "AST *".

Hook

Feature

  • otawa::ref::FEATURE

Referenced by otawa::ast::FunAST::FunAST(), and otawa::ast::ASTInfo::getFunction().

Identifier<ASTInfo *> otawa::ast::INFO("otawa::ast::INFO", 0)
Identifier<String> otawa::ast::PATH("otawa::ast::PATH","")

This identifier may be passed for specifying the path a file for loading the AST.

Feature

Referenced by otawa::ast::ASTLoader::configure().