Lines Matching defs:variable

21 /* This file contains the variable tracking pass.  It computes where
29 How does the variable tracking pass work?
40 of variables change through code and to propagate the variable locations
48 the table of structures describing the locations of parts of a variable
50 The linked list is a list of variable parts stored in the register,
53 effective deleting appropriate variable parts when we set or clobber the
56 There may be more than one variable part in a register. The linked lists
72 Finally, the NOTE_INSN_VAR_LOCATION notes describing the variable locations
74 the location of one variable at the point in instruction stream where the
75 note is. There is no need to emit a note for each variable before each
76 instruction, we only emit these notes where the location of variable changes
82 2. the location of a variable - it is either a simple register/memory
114 MO_USE_NO_VAR,/* Use location which is not associated with a variable
115 or the variable is not trackable. */
117 MO_COPY, /* Copy the same portion of a variable from one
164 /* Description of location of a part of a variable. The content of a physical
197 needed for variable tracking. */
224 /* Structure describing one part of variable. */
233 /* The offset in the variable. */
240 /* Structure describing where the variable is located. */
243 /* The declaration of the variable. */
249 /* Number of variable parts. */
252 /* The variable parts. */
254 } *variable;
259 /* Pointer to the BB's information specific to variable tracking pass. */
300 static variable unshare_variable (dataflow_set *set, variable var);
319 static bool variable_different_p (variable, variable, bool);
343 static void variable_was_changed (variable, htab_t);
591 from the declaration of variable X. */
596 const variable v = (const variable) x;
601 /* Compare the declaration of variable X with declaration Y. */
606 const variable v = (const variable) x;
618 variable var = (variable) elem;
730 /* Return a copy of a variable VAR and insert it to dataflow set SET. */
732 static variable
733 unshare_variable (dataflow_set *set, variable var)
736 variable new_var;
764 /* We are at the basic block boundary when copying variable description
779 /* Add a variable from *SLOT to hash table DATA and increase its reference
786 variable src, *dstp;
788 src = *(variable *) slot;
791 dstp = (variable *) htab_find_slot_with_hash (dst, src->decl,
843 MODIFY is true, any other live copies of the same variable part are
844 also deleted from the dataflow set, otherwise the variable part is
881 variable part. */
925 /* Set the location part of variable MEM_EXPR (LOC) in dataflow set
940 /* Delete and set the location part of variable MEM_EXPR (LOC) in
942 of the same variable part are also deleted from the dataflow set,
943 otherwise the variable part is assumed to be copied from another
961 true, also delete any other live copies of the same variable part.
1015 /* Information for merging lists of locations for a given offset of variable.
1044 /* Compute union of location parts of variable *SLOT and the same variable
1046 for common offsets, i.e. the locations of a variable part are sorted by
1057 variable src, dst, *dstp;
1061 src = *(variable *) slot;
1062 dstp = (variable *) htab_find_slot_with_hash (set->vars, src->decl,
1069 /* If CUR_LOC of some variable part is not the first element of
1071 a copy of the variable. */
1310 variable part. */
1313 variable_different_p (variable var1, variable var2,
1346 /* Compare variable *SLOT with the same variable in hash table DATA
1353 variable var1, var2;
1355 var1 = *(variable *) slot;
1378 /* Compare variable *SLOT with the same variable in hash table DATA
1385 variable var1, var2;
1387 var1 = *(variable *) slot;
1482 /* If EXPR is not a parameter or a variable do not track it. */
1502 /* ??? We don't yet know how to emit DW_OP_piece for variable
1518 /* When the EXPR is a DECL for alias of some variable (see example)
1558 /* Determine whether a given LOC refers to the same variable part as
1729 /* Compute the changes of variable locations in the basic block BB. */
1939 /* Print the information about variable *SLOT to dump file. */
1944 variable var = *(variable *) slot;
2015 /* Add variable VAR to the hash table of changed variables and
2019 variable_was_changed (variable var, htab_t htab)
2025 variable *slot;
2027 slot = (variable *) htab_find_slot_with_hash (changed_variables,
2032 variable empty_var;
2070 find_variable_location_part (variable var, HOST_WIDE_INT offset,
2097 /* Set the part of variable's location in the dataflow set SET. The variable
2098 part is specified by variable's declaration DECL and offset OFFSET and the
2107 variable var;
2114 /* Create new variable information. */
2129 var = (variable) *slot;
2148 /* We have to make a copy of a shared variable. */
2157 /* We have to make a copy of the shared variable. */
2208 /* Remove all recorded register locations for the given variable part
2210 The variable part is specified by variable's declaration DECL and
2226 variable var = (variable) *slot;
2245 /* Remove the variable part from the register's
2246 list, but preserve any other variable parts
2269 /* Delete the part of variable's location from dataflow set SET. The variable
2270 part is specified by variable's declaration DECL and offset OFFSET and the
2283 variable var = (variable) *slot;
2294 /* If the variable contains the location part we have to
2295 make a copy of the variable. */
2327 we have to emit new location so add the variable to set
2357 /* Emit the NOTE_INSN_VAR_LOCATION for variable *VARP. DATA contains
2364 variable var = *(variable *) varp;
2502 /* When there are no location parts the variable has been already
2503 removed from hash table and a new empty variable was created.
2504 Free the empty variable. */
2514 /* Emit NOTE_INSN_VAR_LOCATION note for each variable from a chain
2528 /* Add variable *SLOT to the chain CHANGED_VARIABLES if it differs from the
2529 same variable in hash table DATA or is not there at all. */
2535 variable old_var, new_var;
2537 old_var = *(variable *) slot;
2544 variable empty_var;
2561 /* Add variable *SLOT to the chain CHANGED_VARIABLES if it is not in hash
2568 variable old_var, new_var;
2570 new_var = *(variable *) slot;
2718 /* Emit the notes for changes of variable locations between two
2809 /* Allocate and initialize the data structures for variable tracking
2955 /* Free the data structures needed for variable tracking. */
2979 /* The entry point to variable tracking pass. */