User Tools

Site Tools


manet:docs:attributes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
manet:docs:attributes [2015/04/16 18:55]
ppinto created
manet:docs:attributes [2019/09/22 15:47] (current)
Line 3: Line 3:
 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. 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.1429203359.txt.gz ยท Last modified: 2019/09/22 15:46 (external edit)