summaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authordalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-28 19:25:49 +0000
committerdalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-28 19:25:49 +0000
commita576091379944a53645cd7d227d784dce94ba8d0 (patch)
tree6d82077d573f3479764a7ac71bd2fcff5afe6198 /gcc/loop.c
parent09e210d66a790008e98bfccccf2499b17dd5859b (diff)
downloadgcc-a576091379944a53645cd7d227d784dce94ba8d0.tar.gz
2003-01-28 Dale Johannesen <dalej@apple.com>
* emit-rtl.c (const_double_htab_hash): Use mode in the hash. * loop.c (scan_loop): Move movables on -Os rich-register targets. * config/rs6000/rs6000.md (sibcall*): Use match_operand for LR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62004 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.c')
-rw-r--r--gcc/loop.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 50c1692c449..b366b542445 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -1108,10 +1108,12 @@ scan_loop (loop, flags)
/* Now consider each movable insn to decide whether it is worth moving.
Store 0 in regs->array[I].set_in_loop for each reg I that is moved.
- Generally this increases code size, so do not move moveables when
- optimizing for code size. */
+ For machines with few registers this increases code size, so do not
+ move moveables when optimizing for code size on such machines.
+ (The 18 below is the value for i386.) */
- if (! optimize_size)
+ if (!optimize_size
+ || (reg_class_size[GENERAL_REGS] > 18 && !loop_info->has_call))
{
move_movables (loop, movables, threshold, insn_count);