This shows you the differences between two versions of the page.
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. | |