aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-05-19 19:53:45 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2004-05-19 17:53:45 +0000
commit0aea6467d5022e3858bfed5ce5d24aa877bfed1a (patch)
tree0b36d07ee82475415ae29e4414267b5f3dd44411 /gcc/rtl.h
parent20cb64fd5cc597d456961e2d223c386c5950416c (diff)
downloadgcc-0aea6467d5022e3858bfed5ce5d24aa877bfed1a.zip
gcc-0aea6467d5022e3858bfed5ce5d24aa877bfed1a.tar.gz
gcc-0aea6467d5022e3858bfed5ce5d24aa877bfed1a.tar.bz2
Multiple fixes: PRs 14692, 15274 and 15463
PR c++/15463 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on result of inverse. PR rtl-optimization/15274 * loop-iv.c (determine_max_iter, shorten_into_mode, iv_number_of_iterations): Handle constants correctly. * rtl.h (get_mode_bounds): Declaration changed. * stor-layout.c (get_mode_bounds): Return a constant suitable for the target mode. PR rtl-optimization/14692 * loop-unswitch.c (may_unswitch_on): Try folding the result. (unswitch_single_loop): Work correctly when may_unswitch_on returns a folded constant. * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B. * simplify-rtx.c (simplify_const_relational_operation): Optimize comparisons with mode bounds. * function.c (struct temp_slot): Add new field prev. (free_after_compilation, init_temp_slots): Free new fields. (cut_slot_from_list, insert_slot_to_list, temp_slots_at_level, max_slot_level, move_slot_to_level, make_slot_available): New functions. (assign_stack_temp_for_type, combine_temp_slots, find_temp_slot_from_address, preserve_temp_slots, preserve_rtl_expr_result, free_temp_slots, free_temps_for_rtl_expr, pop_temp_slots): Work with the new structure of lists. (mark_all_temps_used): Removed. * function.h (struct function): Field x_temp_slots replaced by x_used_temp_slots and x_avail_temp_slots. (temp_slots): Replaced by ... (used_temp_slots, avail_temp_slots): New. * tree.h (mark_all_temps_used): Declaration removed. * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze, simplify_using_assignment): Take the expression out of the expr_list wrapper. * loop-iv.c (iv_number_of_iterations): Improve clasification of infinite loops. From-SVN: r82028
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 89f6683..cb6850a 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2447,7 +2447,8 @@ extern void tracer (void);
extern void variable_tracking_main (void);
/* In stor-layout.c. */
-extern void get_mode_bounds (enum machine_mode, int, rtx *, rtx *);
+extern void get_mode_bounds (enum machine_mode, int, enum machine_mode,
+ rtx *, rtx *);
/* In loop-unswitch.c */
extern rtx reversed_condition (rtx);