public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/16807] New: [lno] Weird loop unrolling
@ 2004-07-28 19:56 falk at debian dot org
2004-07-30 19:18 ` [Bug tree-optimization/16807] " cvs-commit at gcc dot gnu dot org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: falk at debian dot org @ 2004-07-28 19:56 UTC (permalink / raw)
To: gcc-bugs
gcc version 3.5-tree-ssa-lno 20040719 (merged 20040718)
For this code:
int g (int *p, int n) {
int r = 0, i;
for (i = 0; i < n; ++i)
r += p[i];
return r;
}
with -O3 -funroll-all-loops, I get:
g:
.frame $30,0,$26,0
.prologue 0
mov $31,$0
ble $17,$L4
lda $17,-1($17)
mov $31,$24
$L5:
ldl $23,0($16)
zapnot $17,15,$3
lda $2,1($24)
lda $3,1($3)
lda $24,7($2)
lda $4,1($2)
lda $5,2($2)
lda $6,3($2)
lda $7,4($2)
lda $8,5($2)
lda $22,6($2)
cmpeq $2,$3,$2
cmpeq $4,$3,$4
cmpeq $5,$3,$5
cmpeq $6,$3,$6
cmpeq $7,$3,$7
cmpeq $8,$3,$8
cmpeq $22,$3,$22
cmpeq $24,$3,$25
addl $0,$23,$0
lda $3,4($16)
bne $2,$L4
ldl $1,0($3)
lda $16,28($3)
addl $0,$1,$0
bne $4,$L4
ldl $1,4($3)
addl $0,$1,$0
bne $5,$L4
ldl $1,8($3)
addl $0,$1,$0
bne $6,$L4
ldl $1,12($3)
addl $0,$1,$0
bne $7,$L4
ldl $1,16($3)
addl $0,$1,$0
bne $8,$L4
ldl $1,20($3)
addl $0,$1,$0
bne $22,$L4
ldl $1,24($3)
addl $0,$1,$0
beq $25,$L5
.align 4
$L4:
ret $31,($26),1
.end g
which strikes me as an extremely weird way of unrolling a loop, and in fact
it takes twice the time as the code 3.5 generates, which is:
g:
.frame $30,0,$26,0
.prologue 0
mov $17,$25
ble $17,$L38
lda $17,-1($17)
cmple $25,1,$1
ldl $0,0($16)
lda $24,1($31)
and $17,7,$17
lda $23,4($16)
bne $1,$L4
addl $31,$17,$17
beq $17,$L5
cmpeq $17,1,$1
bne $1,$L31
cmpeq $17,2,$1
bne $1,$L32
cmpeq $17,3,$1
bne $1,$L33
cmpeq $17,4,$1
bne $1,$L34
cmpeq $17,5,$1
bne $1,$L35
cmpeq $17,6,$1
bne $1,$L36
ldl $1,4($16)
lda $23,8($16)
lda $24,2($31)
addl $0,$1,$0
$L36:
ldl $1,0($23)
addl $24,1,$24
lda $23,4($23)
addl $0,$1,$0
$L35:
ldl $1,0($23)
addl $24,1,$24
lda $23,4($23)
addl $0,$1,$0
$L34:
ldl $1,0($23)
addl $24,1,$24
lda $23,4($23)
addl $0,$1,$0
$L33:
ldl $1,0($23)
addl $24,1,$24
lda $23,4($23)
addl $0,$1,$0
$L32:
ldl $1,0($23)
addl $24,1,$24
lda $23,4($23)
addl $0,$1,$0
$L31:
ldl $2,0($23)
addl $24,1,$24
lda $23,4($23)
cmple $25,$24,$1
addl $0,$2,$0
bne $1,$L4
$L5:
ldl $1,0($23)
ldl $8,4($23)
addl $24,8,$24
ldl $6,8($23)
ldl $7,12($23)
cmple $25,$24,$22
ldl $4,16($23)
ldl $5,20($23)
addl $0,$1,$1
ldl $2,24($23)
ldl $3,28($23)
lda $23,32($23)
addl $1,$8,$1
addl $1,$6,$1
addl $1,$7,$1
addl $1,$4,$1
addl $1,$5,$1
addl $1,$2,$1
addl $1,$3,$0
beq $22,$L5
$L4:
ret $31,($26),1
$L38:
mov $31,$0
ret $31,($26),1
.end g
--
Summary: [lno] Weird loop unrolling
Product: gcc
Version: lno
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: falk at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: alphaev68-unknown-linux-gnu
GCC host triplet: alphaev68-unknown-linux-gnu
GCC target triplet: alphaev68-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16807
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/16807] [lno] Weird loop unrolling
2004-07-28 19:56 [Bug tree-optimization/16807] New: [lno] Weird loop unrolling falk at debian dot org
@ 2004-07-30 19:18 ` cvs-commit at gcc dot gnu dot org
2004-07-30 19:20 ` rakdver at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-07-30 19:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-07-30 19:18 -------
Subject: Bug 16807
CVSROOT: /cvs/gcc
Module name: gcc
Branch: lno-branch
Changes by: rakdver@gcc.gnu.org 2004-07-30 19:18:48
Modified files:
gcc : ChangeLog.lno loop-iv.c
Log message:
PR tree-optimization/16807
* loop-iv.c (dump_iv_info): Dump invariants correctly.
(iv_subreg, iv_extend): Express value of invariant purely in
base field.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.lno.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.242&r2=1.1.2.243
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-iv.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.4.13&r2=1.1.4.14
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16807
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/16807] [lno] Weird loop unrolling
2004-07-28 19:56 [Bug tree-optimization/16807] New: [lno] Weird loop unrolling falk at debian dot org
2004-07-30 19:18 ` [Bug tree-optimization/16807] " cvs-commit at gcc dot gnu dot org
@ 2004-07-30 19:20 ` rakdver at gcc dot gnu dot org
2004-08-06 9:41 ` cvs-commit at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rakdver at gcc dot gnu dot org @ 2004-07-30 19:20 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From rakdver at gcc dot gnu dot org 2004-07-30 19:20 -------
Fixed in lno-branch. The problem is also present in mainline.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2004-07-30 19:20:30
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16807
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/16807] [lno] Weird loop unrolling
2004-07-28 19:56 [Bug tree-optimization/16807] New: [lno] Weird loop unrolling falk at debian dot org
2004-07-30 19:18 ` [Bug tree-optimization/16807] " cvs-commit at gcc dot gnu dot org
2004-07-30 19:20 ` rakdver at gcc dot gnu dot org
@ 2004-08-06 9:41 ` cvs-commit at gcc dot gnu dot org
2004-08-06 9:43 ` rakdver at gcc dot gnu dot org
2004-08-25 17:03 ` pinskia at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-08-06 9:41 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-08-06 09:41 -------
Subject: Bug 16807
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: rakdver@gcc.gnu.org 2004-08-06 09:40:40
Modified files:
gcc : ChangeLog loop-iv.c
Log message:
PR tree-optimization/16807
* loop-iv.c (dump_iv_info): Dump invariants correctly.
(iv_subreg, iv_extend): Express value of invariant purely in
base field.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.4818&r2=2.4819
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-iv.c.diff?cvsroot=gcc&r1=2.14&r2=2.15
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16807
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/16807] [lno] Weird loop unrolling
2004-07-28 19:56 [Bug tree-optimization/16807] New: [lno] Weird loop unrolling falk at debian dot org
` (2 preceding siblings ...)
2004-08-06 9:41 ` cvs-commit at gcc dot gnu dot org
@ 2004-08-06 9:43 ` rakdver at gcc dot gnu dot org
2004-08-25 17:03 ` pinskia at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: rakdver at gcc dot gnu dot org @ 2004-08-06 9:43 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From rakdver at gcc dot gnu dot org 2004-08-06 09:43 -------
Fixed.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16807
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/16807] [lno] Weird loop unrolling
2004-07-28 19:56 [Bug tree-optimization/16807] New: [lno] Weird loop unrolling falk at debian dot org
` (3 preceding siblings ...)
2004-08-06 9:43 ` rakdver at gcc dot gnu dot org
@ 2004-08-25 17:03 ` pinskia at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-25 17:03 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |3.5.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16807
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2004-08-25 17:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-28 19:56 [Bug tree-optimization/16807] New: [lno] Weird loop unrolling falk at debian dot org
2004-07-30 19:18 ` [Bug tree-optimization/16807] " cvs-commit at gcc dot gnu dot org
2004-07-30 19:20 ` rakdver at gcc dot gnu dot org
2004-08-06 9:41 ` cvs-commit at gcc dot gnu dot org
2004-08-06 9:43 ` rakdver at gcc dot gnu dot org
2004-08-25 17:03 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).