User Tools

Site Tools


Sidebar

<menu col=1,align=center>

<item>Documentation||[[lara:documentation]]|{{:lara:img:dictionary.png?25}}</item>
<item>Downloads||[[lara:downloads]]| {{:lara:img:projects.png?25}}</item>
<item>Tutorials||[[lara:tutorial]]|{{:lara:img:books.png?25}}</item>
<item>Other uses of LARA||[[lara:other]]|{{:lara:img:globe.png?25}}</item>
<item>About Us||[[https://sites.google.com/site/specsfeup/]]| {{:lara:img:specslogo.png?25}}</item>
<item>Projects||[[lara:usage]]| {{:lara:img:math.png?25}}</item>

</menu>

/* They are empty */ /* <item>FAQ||faq|</item> */ /* <item>Dev. Team||team| </item> */ /* <item>About LARA||about|</item> */

manet:docs:attributes

MANET Join Point Attributes

This page presents the join point attributes available through MANET. After selecting a desired join point, we can use this attributes to perform detailed analyses and filter our results.

Join Point Attribute Type Description
arrayAccess name String The name of the array.
reference enum: {read,write} The type of access. a[i]=3 is considered a write and tmp=a[i] is considered a read.
num_dims Integer The number of dimensions used in the array access.
binaryExpression operator String A string representation of the binary operator.
body num_statements Integer The number of statements inside the body.
num_loops Integer The number of loops inside the body.
num_for Integer The number of FOR loops inside the body.
num_while Integer The number of WHILE loops inside the body.
num_dowhile Integer The number of DOWHILE loops inside the body.
call name String The name of the function being called.
num_args Integer The number of arguments of the function call.
ID String A string that uniquely identifies the function call inside the program.
return_type String A string representation of the return type of the function being called, e.g., int.
declaration name String The name of the variable being declared.
is_array Boolean Whether the declared variable is an array.
is_pointer Boolean Whether the declared variable is a pointer.
is_struct Boolean Whether the declared variable is a struct.
is_primitive Boolean Whether the declared variable is not a user-defined type.
expression num_oper Integer The number of operators used in the expression.
num_calls Integer The number of function calls in the expression.
is_array_access Boolean Whether this expression is an array access.
has_side_effects Boolean Whether this expression has side effects. This is true when a unary operator that has side effects is used, e.g., the prefix increment operator.
line Integer The line number where this expression is located in the original source file.
file name String The name of the file.
function name String The name of the function.
return_type String A string representation of the return type of the function, e.g., int.
line Integer The line number where this fucntion is located in the original source file.
if rank String A string that uniquely identifies this IF inside the function. For instance, 1.1 would mean the selected IF is the first IF found inside the first of the outermost conditionals.
is_loop_parent Boolean Whether the provided loop is the parent of this this if. This attribute expects an argument which must be a join point of type loop. It is called as if it were a function: $if.is_loop_parent($loop).
is_if_parent Boolean Whether the provided if is the parent of this this if. This attribute expects an argument which must be a join point of type if. It is called as if it were a function: $if1.is_if_parent($if2).
loop type enum: {for,while,do-while} The type of the loop.
ID String A string that uniquely identifies the function call inside the program.
num_iterations Integer The number of iterations of the loop. If it is not possible to calculate the number of iterations of this loop, this attribute emits a warning and returns the value -1.
increment_value Integer The value of the increment used in the expression step. For instance, in for(i=0; i<N; i=i+2), this value would be 2. If it is not possible to calculate this value, this attribute emits a warning and returns the value -1.
is_innermost Boolean Whether this is an innermost loop.
nested_level Integer The nesting level of this loop. An outermost loop will have a nested level of 0 and an innermost loop will have a nested level that is equal to the number of loop ancestors.
control_var String The name of the variable used as control. In the loop for(i=0; i<N; i=i+2), the control variable is i. If it is not possible to calculate this variable, this attribute emits a warning and returns an empty string.
rank String A string that uniquely identifies this loop inside the function. For instance, 1.1 would mean the selected loop is the first loop found inside the first of the outermost loops.
perfect_nest Boolean Whether this loop and his inner loops form a perfect loop nest.
is_parent Boolean Whether the provided loop is the parent of this this loop. This attribute expects an argument which must be a join point of type loop. It is called as if it were a function: $loop1.is_parent($loop2).
line Integer The line number where this loop is located in the original source file.
statement line Integer The line number where this statement is located in the original source file.
var references enum: {read,write,decl} The type of variable use. decl stands for declaration.
scope enum: {local,global} Whether this variable was declared globally or in the current function.
type String A string representation of the type of the variable, e.g., int.
is_array Boolean Whether this variable is an array.
is_pointer Boolean Whether this variable is a pointer.
is_struct Boolean Whether this variable is a struct.
name String The name of this variable.
is_arg Boolean Whether this variable use is inside a function call as an argument.
in_loop_header Boolean Whether this variable use is inside a loop header.
is_param Boolean Whether this variable use is a parameter definition.
is_scalar Boolean Whether this variable is scalar.
has_init Boolean Whether this variable use represents a declaration that has an initializer.
is_primitive Boolean Whether this variable is not a user-defined type.
line Integer The line number where this variable use is located in the original source file.
manet/docs/attributes.txt · Last modified: 2019/09/22 15:47 (external edit)