aboutsummaryrefslogtreecommitdiff
path: root/gcc/vec.h
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-09-07 15:57:45 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-09-07 15:57:45 +0000
commit8ffa0351a51d66881c60b4f04da586553d1797cd (patch)
tree311cb1866ca2c6ce990c341341238f8fc2166d1d /gcc/vec.h
parenta81462f103bd6707e6ac02695bdc515097721156 (diff)
downloadgcc-8ffa0351a51d66881c60b4f04da586553d1797cd.zip
gcc-8ffa0351a51d66881c60b4f04da586553d1797cd.tar.gz
gcc-8ffa0351a51d66881c60b4f04da586553d1797cd.tar.bz2
regrename.c (struct du_head): Make nregs signed.
* regrename.c (struct du_head): Make nregs signed. (closed_chains): Remove. (create_new_chain): Return the new chain. (chain_from_id): New static function. (dump_def_use_chain): Change argument to be an int, indicating the first ID to print. All callers changed. (merge_overlapping_regs): Use chain_from_id. Assert that chains don't conflict with themselves. (rename_chains): Take no argument. Iterate over id_to_chain rather to find chains to rename. Clear tick before the main loop. (struct incoming_reg_info): New struct. (struct bb_rename_info): New struct. (init_rename_info, set_incoming_from_chain, merge_chains): New static functions. (regrename_analyze): New static function, broken out of regrename_optimize. Record and make use of open chain information at basic block boundaries, and merge chains where possible. (scan_rtx_reg): Make this_nregs signed. Don't update closed_chains. (build_def_use): Return a bool to indicate success. All callers changed. Don't initialize global data here. (regrename_optimize): Move most code out of here into regrename_analyze. * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set, range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New static inline functions. * vec.h (FOR_EACH_VEC_ELT_FROM): New macro. From-SVN: r178645
Diffstat (limited to 'gcc/vec.h')
-rw-r--r--gcc/vec.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/vec.h b/gcc/vec.h
index 75fcdeb..789e8e2 100644
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -195,6 +195,11 @@ along with GCC; see the file COPYING3. If not see
#define FOR_EACH_VEC_ELT(T, V, I, P) \
for (I = 0; VEC_iterate (T, (V), (I), (P)); ++(I))
+/* Likewise, but start from FROM rather than 0. */
+
+#define FOR_EACH_VEC_ELT_FROM(T, V, I, P, FROM) \
+ for (I = (FROM); VEC_iterate (T, (V), (I), (P)); ++(I))
+
/* Convenience macro for reverse iteration. */
#define FOR_EACH_VEC_ELT_REVERSE(T,V,I,P) \