PIPS
complexity-local.h File Reference
#include "matrice.h"
+ Include dependency graph for complexity-local.h:

Go to the source code of this file.

Data Structures

struct  intrinsic_cost_rec
 Intrinsics costs defines. More...
 

Macros

#define COMPLEXITY_PACKAGE_NAME   "COMPLEXITY"
 
#define COMPLEXITY_UNDEFINED   complexity_undefined
 
#define COMPLEXITY_UNDEFINED_P(c)   ((c)==complexity_undefined)
 
#define COMPLEXITY_NOT_FOUND   ((complexity) HASH_UNDEFINED_VALUE)
 
#define MAX_CONTROLS_IN_UNSTRUCTURED   100
 
#define UNKNOWN_VARIABLE_NAME   "UNKNOWN_VARIABLE"
 pseudo-variable for unknown variables
More...
 
#define UNKNOWN_RANGE_NAME   "UNKNOWN_RANGE"
 pseudo-variable for default iteration number of a loop More...
 
#define TCST_NAME   "_TCST_"
 
#define UNKNOWN_VARIABLE_VALUE_PREFIX   "U_"
 Prefix added to a variable name when its value is unknown but has to be used in a complexity formulae. More...
 
#define COST_DATA   "operation index memory trigo transcend overhead"
 defined complexity data file names here. More...
 
#define DO_PRINT_STATS   true
 defines for "complexity_fprint" calls More...
 
#define DONT_PRINT_STATS   false
 
#define PRINT_LOCAL_NAMES   true
 
#define PRINT_GLOBAL_NAMES   false
 
#define HASH_LOOP_INDEX   ((char *) 4) /**Used as `value' field in the hash-table */
 
#define HASH_USER_VARIABLE   ((char *) 8) /**"hash_complexity_parameters"... useful? */
 
#define HASH_FORMAL_PARAM   ((char *) 12)
 
#define HASH_COMMON_VARIABLE   ((char *) 16) /**used for variable in common. LZ 04/12/91 */
 
#define ZERO_BYTE   0
 
#define INT_NBYTES   4 /**number of bytes used by a standard int */
 
#define FLOAT_NBYTES   4 /**number of bytes used by a single-precision */
 
#define DOUBLE_NBYTES   8 /**number of bytes used by a double-precision */
 
#define COMPLEX_NBYTES   2*FLOAT_NBYTES /**complex, single-precision */
 
#define DCOMPLEX_NBYTES   2*DOUBLE_NBYTES /**complex, double-precision */
 
#define MAKE_INT_BASIC   make_basic(is_basic_int, (void *) INT_NBYTES)
 
#define MAKE_ADDRESS_BASIC   make_basic(is_basic_int, (void *) DEFAULT_POINTER_TYPE_SIZE)
 
#define MAKE_FLOAT_BASIC   make_basic(is_basic_float, (void *) FLOAT_NBYTES)
 
#define MAKE_DOUBLE_BASIC   make_basic(is_basic_float, (void *) DOUBLE_NBYTES)
 
#define MAKE_COMPLEX_BASIC   make_basic(is_basic_complex, (void *) COMPLEX_NBYTES)
 
#define MAKE_DCOMPLEX_BASIC   make_basic(is_basic_complex, (void *) DCOMPLEX_NBYTES)
 
#define MAKE_STRING_BASIC   make_basic(is_basic_string, make_value(is_value_unknown, UU))
 
#define hash_contains_p(htp, key)   (hash_get(htp, key) != HASH_UNDEFINED_VALUE)
 
#define hash_contains_formal_param_p(htp, key)   (hash_get(htp, key) == HASH_FORMAL_PARAM)
 
#define hash_contains_user_var_p(htp, key)   (hash_get(htp, key) == HASH_USER_VARIABLE)
 
#define hash_contains_common_var_p(htp, key)   (hash_get(htp, key) == HASH_COMMON_VARIABLE)
 
#define hash_contains_loop_index_p(htp, key)   (hash_get(htp, key) == HASH_LOOP_INDEX)
 
#define KEEP_SYMBOLS   true
 defines for "expression_to_polynome" parameters More...
 
#define DONT_KEEP_SYMBOLS   false
 
#define MAXIMUM_VALUE   1
 
#define MINIMUM_VALUE   -1
 
#define EXACT_VALUE   0
 
#define TAKE_MAX(m)   ((m) == MAXIMUM_VALUE)
 
#define TAKE_MIN(m)   ((m) == MINIMUM_VALUE)
 
#define KEEP_EXACT(m)   ((m) == EXACT_VALUE)
 
#define LOOP_INIT_OVERHEAD   "LOOP-INIT-OVERHEAD"
 
#define LOOP_BRANCH_OVERHEAD   "LOOP-BRANCH-OVERHEAD"
 
#define CONDITION_OVERHEAD   "CONDITION-OVERHEAD"
 
#define CALL_ZERO_OVERHEAD   "CALL-ZERO-OVERHEAD"
 
#define CALL_ONE_OVERHEAD   "CALL-ONE-OVERHEAD"
 
#define CALL_TWO_OVERHEAD   "CALL-TWO-OVERHEAD"
 
#define CALL_THREE_OVERHEAD   "CALL-THREE-OVERHEAD"
 
#define CALL_FOUR_OVERHEAD   "CALL-FOUR-OVERHEAD"
 
#define CALL_FIVE_OVERHEAD   "CALL-FIVE-OVERHEAD"
 
#define CALL_SIX_OVERHEAD   "CALL-SIX-OVERHEAD"
 
#define CALL_SEVEN_OVERHEAD   "CALL-SEVEN-OVERHEAD"
 
#define TYPE_CAST_COST   "TypeCast"
 TYPE_CAST_COST added to handle cast case ; Molka Becher
More...
 
#define MEMORY_READ_NAME   "MEMORY-READ"
 the above two lines are added for 6th cost file, overhead. More...
 
#define ONE_INDEX_NAME   "ONE-INDEX" /**to count indexation costs in multi-dim arrays */
 
#define TWO_INDEX_NAME   "TWO-INDEX" /**to count indexation costs in multi-dim arrays */
 
#define THREE_INDEX_NAME   "THREE-INDEX"
 
#define FOUR_INDEX_NAME   "FOUR-INDEX"
 
#define FIVE_INDEX_NAME   "FIVE-INDEX"
 
#define SIX_INDEX_NAME   "SIX-INDEX"
 
#define SEVEN_INDEX_NAME   "SEVEN-INDEX"
 
#define STRING_INTRINSICS_COST   1
 
#define LOGICAL_INTRINSICS_COST   1
 
#define DONT_COUNT_THAT   0, 0, 0, 0, 0
 
#define EMPTY_COST   0,0,0,0,0
 
#define DISCRIMINE_TYPES   1, 10, 100,1000,10000
 
#define REAL_INTRINSIC   100, 100, 100, 100, 100
 
#define DOUBLE_INTRINSIC   200, 200, 200, 200, 200
 
#define COMPLEX_INTRINSIC   400, 400, 400, 400, 400
 
#define MEMORY_READ_COST   DONT_COUNT_THAT
 
#define MEMORY_WRITE_COST   DONT_COUNT_THAT
 
#define PLUS_MINUS_COST   1, 10, 20, 20, 40
 
#define MULTIPLY_COST   PLUS_MINUS_COST
 
#define DIVIDE_COST   PLUS_MINUS_COST
 
#define POWER_COST   100, 100, 200, 200, 400
 
#define TRANSC_COST   REAL_INTRINSIC
 
#define DTRANSC_COST   DOUBLE_INTRINSIC
 
#define CTRANSC_COST   COMPLEX_INTRINSIC
 
#define TRIGO_COST   REAL_INTRINSIC
 
#define DTRIGO_COST   DOUBLE_INTRINSIC
 
#define CTRIGO_COST   COMPLEX_INTRINSIC
 
#define TRIGOH_COST   REAL_INTRINSIC
 
#define DTRIGOH_COST   DOUBLE_INTRINSIC
 
#define CTRIGOH_COST   COMPLEX_INTRINSIC
 
#define TWO_INDEX_COST   DONT_COUNT_THAT
 
#define THREE_INDEX_COST   DONT_COUNT_THAT
 
#define FOUR_INDEX_COST   DONT_COUNT_THAT
 
#define FIVE_INDEX_COST   DONT_COUNT_THAT
 
#define SIX_INDEX_COST   DONT_COUNT_THAT
 
#define SEVEN_INDEX_COST   DONT_COUNT_THAT
 

Typedefs

typedef struct intrinsic_cost_rec intrinsic_cost_record
 Intrinsics costs defines. More...
 

Macro Definition Documentation

◆ CALL_FIVE_OVERHEAD

#define CALL_FIVE_OVERHEAD   "CALL-FIVE-OVERHEAD"

Definition at line 129 of file complexity-local.h.

◆ CALL_FOUR_OVERHEAD

#define CALL_FOUR_OVERHEAD   "CALL-FOUR-OVERHEAD"

Definition at line 128 of file complexity-local.h.

◆ CALL_ONE_OVERHEAD

#define CALL_ONE_OVERHEAD   "CALL-ONE-OVERHEAD"

Definition at line 125 of file complexity-local.h.

◆ CALL_SEVEN_OVERHEAD

#define CALL_SEVEN_OVERHEAD   "CALL-SEVEN-OVERHEAD"

Definition at line 131 of file complexity-local.h.

◆ CALL_SIX_OVERHEAD

#define CALL_SIX_OVERHEAD   "CALL-SIX-OVERHEAD"

Definition at line 130 of file complexity-local.h.

◆ CALL_THREE_OVERHEAD

#define CALL_THREE_OVERHEAD   "CALL-THREE-OVERHEAD"

Definition at line 127 of file complexity-local.h.

◆ CALL_TWO_OVERHEAD

#define CALL_TWO_OVERHEAD   "CALL-TWO-OVERHEAD"

Definition at line 126 of file complexity-local.h.

◆ CALL_ZERO_OVERHEAD

#define CALL_ZERO_OVERHEAD   "CALL-ZERO-OVERHEAD"

Definition at line 124 of file complexity-local.h.

◆ COMPLEX_INTRINSIC

#define COMPLEX_INTRINSIC   400, 400, 400, 400, 400

Definition at line 155 of file complexity-local.h.

◆ COMPLEX_NBYTES

#define COMPLEX_NBYTES   2*FLOAT_NBYTES /**complex, single-precision */

Definition at line 80 of file complexity-local.h.

◆ COMPLEXITY_NOT_FOUND

#define COMPLEXITY_NOT_FOUND   ((complexity) HASH_UNDEFINED_VALUE)

Definition at line 45 of file complexity-local.h.

◆ COMPLEXITY_PACKAGE_NAME

#define COMPLEXITY_PACKAGE_NAME   "COMPLEXITY"

Definition at line 39 of file complexity-local.h.

◆ COMPLEXITY_UNDEFINED

#define COMPLEXITY_UNDEFINED   complexity_undefined

Definition at line 40 of file complexity-local.h.

◆ COMPLEXITY_UNDEFINED_P

#define COMPLEXITY_UNDEFINED_P (   c)    ((c)==complexity_undefined)

Definition at line 44 of file complexity-local.h.

◆ CONDITION_OVERHEAD

#define CONDITION_OVERHEAD   "CONDITION-OVERHEAD"

Definition at line 122 of file complexity-local.h.

◆ COST_DATA

#define COST_DATA   "operation index memory trigo transcend overhead"

defined complexity data file names here.

LZ 13/03/92

Definition at line 63 of file complexity-local.h.

◆ CTRANSC_COST

#define CTRANSC_COST   COMPLEX_INTRINSIC

Definition at line 170 of file complexity-local.h.

◆ CTRIGO_COST

#define CTRIGO_COST   COMPLEX_INTRINSIC

Definition at line 173 of file complexity-local.h.

◆ CTRIGOH_COST

#define CTRIGOH_COST   COMPLEX_INTRINSIC

Definition at line 176 of file complexity-local.h.

◆ DCOMPLEX_NBYTES

#define DCOMPLEX_NBYTES   2*DOUBLE_NBYTES /**complex, double-precision */

Definition at line 81 of file complexity-local.h.

◆ DISCRIMINE_TYPES

#define DISCRIMINE_TYPES   1, 10, 100,1000,10000

Definition at line 152 of file complexity-local.h.

◆ DIVIDE_COST

#define DIVIDE_COST   PLUS_MINUS_COST

Definition at line 165 of file complexity-local.h.

◆ DO_PRINT_STATS

#define DO_PRINT_STATS   true

defines for "complexity_fprint" calls

Definition at line 66 of file complexity-local.h.

◆ DONT_COUNT_THAT

#define DONT_COUNT_THAT   0, 0, 0, 0, 0

Definition at line 150 of file complexity-local.h.

◆ DONT_KEEP_SYMBOLS

#define DONT_KEEP_SYMBOLS   false

Definition at line 99 of file complexity-local.h.

◆ DONT_PRINT_STATS

#define DONT_PRINT_STATS   false

Definition at line 67 of file complexity-local.h.

◆ DOUBLE_INTRINSIC

#define DOUBLE_INTRINSIC   200, 200, 200, 200, 200

Definition at line 154 of file complexity-local.h.

◆ DOUBLE_NBYTES

#define DOUBLE_NBYTES   8 /**number of bytes used by a double-precision */

Definition at line 79 of file complexity-local.h.

◆ DTRANSC_COST

#define DTRANSC_COST   DOUBLE_INTRINSIC

Definition at line 169 of file complexity-local.h.

◆ DTRIGO_COST

#define DTRIGO_COST   DOUBLE_INTRINSIC

Definition at line 172 of file complexity-local.h.

◆ DTRIGOH_COST

#define DTRIGOH_COST   DOUBLE_INTRINSIC

Definition at line 175 of file complexity-local.h.

◆ EMPTY_COST

#define EMPTY_COST   0,0,0,0,0

Definition at line 151 of file complexity-local.h.

◆ EXACT_VALUE

#define EXACT_VALUE   0

Definition at line 102 of file complexity-local.h.

◆ FIVE_INDEX_COST

#define FIVE_INDEX_COST   DONT_COUNT_THAT

Definition at line 181 of file complexity-local.h.

◆ FIVE_INDEX_NAME

#define FIVE_INDEX_NAME   "FIVE-INDEX"

Definition at line 144 of file complexity-local.h.

◆ FLOAT_NBYTES

#define FLOAT_NBYTES   4 /**number of bytes used by a single-precision */

Definition at line 78 of file complexity-local.h.

◆ FOUR_INDEX_COST

#define FOUR_INDEX_COST   DONT_COUNT_THAT

Definition at line 180 of file complexity-local.h.

◆ FOUR_INDEX_NAME

#define FOUR_INDEX_NAME   "FOUR-INDEX"

Definition at line 143 of file complexity-local.h.

◆ HASH_COMMON_VARIABLE

#define HASH_COMMON_VARIABLE   ((char *) 16) /**used for variable in common. LZ 04/12/91 */

Definition at line 74 of file complexity-local.h.

◆ hash_contains_common_var_p

#define hash_contains_common_var_p (   htp,
  key 
)    (hash_get(htp, key) == HASH_COMMON_VARIABLE)

Definition at line 93 of file complexity-local.h.

◆ hash_contains_formal_param_p

#define hash_contains_formal_param_p (   htp,
  key 
)    (hash_get(htp, key) == HASH_FORMAL_PARAM)

Definition at line 91 of file complexity-local.h.

◆ hash_contains_loop_index_p

#define hash_contains_loop_index_p (   htp,
  key 
)    (hash_get(htp, key) == HASH_LOOP_INDEX)

Definition at line 94 of file complexity-local.h.

◆ hash_contains_p

#define hash_contains_p (   htp,
  key 
)    (hash_get(htp, key) != HASH_UNDEFINED_VALUE)

Definition at line 90 of file complexity-local.h.

◆ hash_contains_user_var_p

#define hash_contains_user_var_p (   htp,
  key 
)    (hash_get(htp, key) == HASH_USER_VARIABLE)

Definition at line 92 of file complexity-local.h.

◆ HASH_FORMAL_PARAM

#define HASH_FORMAL_PARAM   ((char *) 12)

Definition at line 73 of file complexity-local.h.

◆ HASH_LOOP_INDEX

#define HASH_LOOP_INDEX   ((char *) 4) /**Used as `value' field in the hash-table */

Definition at line 71 of file complexity-local.h.

◆ HASH_USER_VARIABLE

#define HASH_USER_VARIABLE   ((char *) 8) /**"hash_complexity_parameters"... useful? */

Definition at line 72 of file complexity-local.h.

◆ INT_NBYTES

#define INT_NBYTES   4 /**number of bytes used by a standard int */

Definition at line 77 of file complexity-local.h.

◆ KEEP_EXACT

#define KEEP_EXACT (   m)    ((m) == EXACT_VALUE)

Definition at line 105 of file complexity-local.h.

◆ KEEP_SYMBOLS

#define KEEP_SYMBOLS   true

defines for "expression_to_polynome" parameters

Definition at line 98 of file complexity-local.h.

◆ LOGICAL_INTRINSICS_COST

#define LOGICAL_INTRINSICS_COST   1

Definition at line 148 of file complexity-local.h.

◆ LOOP_BRANCH_OVERHEAD

#define LOOP_BRANCH_OVERHEAD   "LOOP-BRANCH-OVERHEAD"

Definition at line 121 of file complexity-local.h.

◆ LOOP_INIT_OVERHEAD

#define LOOP_INIT_OVERHEAD   "LOOP-INIT-OVERHEAD"

Definition at line 120 of file complexity-local.h.

◆ MAKE_ADDRESS_BASIC

#define MAKE_ADDRESS_BASIC   make_basic(is_basic_int, (void *) DEFAULT_POINTER_TYPE_SIZE)

Definition at line 83 of file complexity-local.h.

◆ MAKE_COMPLEX_BASIC

#define MAKE_COMPLEX_BASIC   make_basic(is_basic_complex, (void *) COMPLEX_NBYTES)

Definition at line 86 of file complexity-local.h.

◆ MAKE_DCOMPLEX_BASIC

#define MAKE_DCOMPLEX_BASIC   make_basic(is_basic_complex, (void *) DCOMPLEX_NBYTES)

Definition at line 87 of file complexity-local.h.

◆ MAKE_DOUBLE_BASIC

#define MAKE_DOUBLE_BASIC   make_basic(is_basic_float, (void *) DOUBLE_NBYTES)

Definition at line 85 of file complexity-local.h.

◆ MAKE_FLOAT_BASIC

#define MAKE_FLOAT_BASIC   make_basic(is_basic_float, (void *) FLOAT_NBYTES)

Definition at line 84 of file complexity-local.h.

◆ MAKE_INT_BASIC

#define MAKE_INT_BASIC   make_basic(is_basic_int, (void *) INT_NBYTES)

Definition at line 82 of file complexity-local.h.

◆ MAKE_STRING_BASIC

#define MAKE_STRING_BASIC   make_basic(is_basic_string, make_value(is_value_unknown, UU))

Definition at line 88 of file complexity-local.h.

◆ MAX_CONTROLS_IN_UNSTRUCTURED

#define MAX_CONTROLS_IN_UNSTRUCTURED   100

Definition at line 47 of file complexity-local.h.

◆ MAXIMUM_VALUE

#define MAXIMUM_VALUE   1

Definition at line 100 of file complexity-local.h.

◆ MEMORY_READ_COST

#define MEMORY_READ_COST   DONT_COUNT_THAT

Definition at line 157 of file complexity-local.h.

◆ MEMORY_READ_NAME

#define MEMORY_READ_NAME   "MEMORY-READ"

the above two lines are added for 6th cost file, overhead.

LZ 280993 overhead is divided into two. init and branch 081093

Definition at line 139 of file complexity-local.h.

◆ MEMORY_WRITE_COST

#define MEMORY_WRITE_COST   DONT_COUNT_THAT

Definition at line 158 of file complexity-local.h.

◆ MINIMUM_VALUE

#define MINIMUM_VALUE   -1

Definition at line 101 of file complexity-local.h.

◆ MULTIPLY_COST

#define MULTIPLY_COST   PLUS_MINUS_COST

Definition at line 164 of file complexity-local.h.

◆ ONE_INDEX_NAME

#define ONE_INDEX_NAME   "ONE-INDEX" /**to count indexation costs in multi-dim arrays */

Definition at line 140 of file complexity-local.h.

◆ PLUS_MINUS_COST

#define PLUS_MINUS_COST   1, 10, 20, 20, 40

Definition at line 159 of file complexity-local.h.

◆ POWER_COST

#define POWER_COST   100, 100, 200, 200, 400

Definition at line 166 of file complexity-local.h.

◆ PRINT_GLOBAL_NAMES

#define PRINT_GLOBAL_NAMES   false

Definition at line 69 of file complexity-local.h.

◆ PRINT_LOCAL_NAMES

#define PRINT_LOCAL_NAMES   true

Definition at line 68 of file complexity-local.h.

◆ REAL_INTRINSIC

#define REAL_INTRINSIC   100, 100, 100, 100, 100

Definition at line 153 of file complexity-local.h.

◆ SEVEN_INDEX_COST

#define SEVEN_INDEX_COST   DONT_COUNT_THAT

Definition at line 183 of file complexity-local.h.

◆ SEVEN_INDEX_NAME

#define SEVEN_INDEX_NAME   "SEVEN-INDEX"

Definition at line 146 of file complexity-local.h.

◆ SIX_INDEX_COST

#define SIX_INDEX_COST   DONT_COUNT_THAT

Definition at line 182 of file complexity-local.h.

◆ SIX_INDEX_NAME

#define SIX_INDEX_NAME   "SIX-INDEX"

Definition at line 145 of file complexity-local.h.

◆ STRING_INTRINSICS_COST

#define STRING_INTRINSICS_COST   1

Definition at line 147 of file complexity-local.h.

◆ TAKE_MAX

#define TAKE_MAX (   m)    ((m) == MAXIMUM_VALUE)

Definition at line 103 of file complexity-local.h.

◆ TAKE_MIN

#define TAKE_MIN (   m)    ((m) == MINIMUM_VALUE)

Definition at line 104 of file complexity-local.h.

◆ TCST_NAME

#define TCST_NAME   "_TCST_"

Definition at line 55 of file complexity-local.h.

◆ THREE_INDEX_COST

#define THREE_INDEX_COST   DONT_COUNT_THAT

Definition at line 179 of file complexity-local.h.

◆ THREE_INDEX_NAME

#define THREE_INDEX_NAME   "THREE-INDEX"

Definition at line 142 of file complexity-local.h.

◆ TRANSC_COST

#define TRANSC_COST   REAL_INTRINSIC

Definition at line 168 of file complexity-local.h.

◆ TRIGO_COST

#define TRIGO_COST   REAL_INTRINSIC

Definition at line 171 of file complexity-local.h.

◆ TRIGOH_COST

#define TRIGOH_COST   REAL_INTRINSIC

Definition at line 174 of file complexity-local.h.

◆ TWO_INDEX_COST

#define TWO_INDEX_COST   DONT_COUNT_THAT

Definition at line 178 of file complexity-local.h.

◆ TWO_INDEX_NAME

#define TWO_INDEX_NAME   "TWO-INDEX" /**to count indexation costs in multi-dim arrays */

Definition at line 141 of file complexity-local.h.

◆ TYPE_CAST_COST

#define TYPE_CAST_COST   "TypeCast"

TYPE_CAST_COST added to handle cast case ; Molka Becher

Definition at line 134 of file complexity-local.h.

◆ UNKNOWN_RANGE_NAME

#define UNKNOWN_RANGE_NAME   "UNKNOWN_RANGE"

pseudo-variable for default iteration number of a loop

Definition at line 53 of file complexity-local.h.

◆ UNKNOWN_VARIABLE_NAME

#define UNKNOWN_VARIABLE_NAME   "UNKNOWN_VARIABLE"

pseudo-variable for unknown variables

Definition at line 50 of file complexity-local.h.

◆ UNKNOWN_VARIABLE_VALUE_PREFIX

#define UNKNOWN_VARIABLE_VALUE_PREFIX   "U_"

Prefix added to a variable name when its value is unknown but has to be used in a complexity formulae.

Definition at line 60 of file complexity-local.h.

◆ ZERO_BYTE

#define ZERO_BYTE   0

Definition at line 76 of file complexity-local.h.

Typedef Documentation

◆ intrinsic_cost_record

Intrinsics costs defines.