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).