diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-05 18:10:44 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-05 18:10:44 +0000 |
commit | debeee984b45cc53cf9d72c68e5879cdca6eed72 (patch) | |
tree | 2803ac7a2623225480a95038c4747be2ab3b5082 /gcc/cfgloop.h | |
parent | eda0b26048e5b34b3e768a287468d0816fc606f2 (diff) | |
download | gcc-debeee984b45cc53cf9d72c68e5879cdca6eed72.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73275 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r-- | gcc/cfgloop.h | 3 |
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. */ |