summaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2003-11-05 19:10:44 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2003-11-05 18:10:44 +0000
commit142d1f57d6c4a40bcf07a243bf71465bf72b1012 (patch)
tree2803ac7a2623225480a95038c4747be2ab3b5082 /gcc/cfgloop.h
parentaf09332e6d6c7f4970b62d1549f5cf0192b7a718 (diff)
downloadgcc-142d1f57d6c4a40bcf07a243bf71465bf72b1012.tar.gz
cfgloopanal.c (variable_initial_value, [...]): Record the fact that initial value is extended from inner mode.
* cfgloopanal.c (variable_initial_value, variable_initial_values, simple_loop_exit_p): Record the fact that initial value is extended from inner mode. (count_strange_loop_iterations, count_loop_iterations): Handle ivs that iterate in a narrower mode. Fix handling of overflows. Improve handling of NE conditions. (inverse, fits_in_mode_p): New static functions. (simple_increment): Detect variables that iterate in a narrower mode. * cfgloop.h (struct loop_desc): Fields inner_mode and extend added. From-SVN: r73275
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r--gcc/cfgloop.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index e879e522031..0ab1590c4dd 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -42,6 +42,9 @@ struct loop_desc
int postincr; /* 1 if increment/decrement is done after loop exit condition. */
rtx stride; /* Value added to VAR in each iteration. */
rtx var; /* Loop control variable. */
+ enum machine_mode inner_mode;
+ /* The mode from that it is extended. */
+ enum rtx_code extend; /* With this extend. */
rtx var_alts; /* List of definitions of its initial value. */
rtx lim; /* Expression var is compared with. */
rtx lim_alts; /* List of definitions of its initial value. */