[Bug rtl-optimization/19078] [4.0 Regression] Poor quality code after loop unrolling.

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Dec 19 13:23:00 GMT 2004


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-19 13:23 -------
In 3.3.2, the main loop is:
L7:
	lwz r6,0(r9)
	cmpwi cr0,r6,2
	beq- cr0,L1
	lwzu r7,4(r9)
	cmpwi cr0,r7,2
	beq- cr0,L1
	lwzu r8,4(r9)
	cmpwi cr0,r8,2
	beq- cr0,L1
	lwzu r10,4(r9)
	cmpwi cr0,r10,2
	beq- cr0,L1
	addi r9,r9,4
	cmpw cr0,r9,r4
	bne+ cr0,L7

in 4.0.0:
L58:
	mr r9,r11
L7:
	cmpw cr7,r4,r9
	beq- cr7,L5
	lwz r0,0(r9)
	addi r11,r9,4
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,0(r11)
	mr r2,r11
	mr r9,r11
	addi r11,r11,4
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,0(r11)
	mr r9,r11
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,8(r2)
	addi r9,r2,8
	addi r11,r2,12
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,12(r2)
	mr r9,r11
	addi r11,r2,16
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,16(r2)
	mr r9,r11
	addi r11,r2,20
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,20(r2)
	mr r9,r11
	addi r11,r2,24
	cmpwi cr7,r0,2
	beq- cr7,L5
	lwz r0,24(r2)
	mr r9,r11
	addi r11,r2,28
	cmpwi cr7,r0,2
	bne+ cr7,L58

Notice how in 3.3.2, we used lwzu, that is needed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |minor
             Status|UNCONFIRMED                 |NEW
          Component|c                           |rtl-optimization
     Ever Confirmed|                            |1
   GCC host triplet|i686-pc-linux-gnu           |
           Keywords|                            |missed-optimization
      Known to fail|                            |4.0.0
      Known to work|                            |3.3.2
   Last reconfirmed|0000-00-00 00:00:00         |2004-12-19 13:23:03
               date|                            |
   Target Milestone|---                         |4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19078



More information about the Gcc-bugs mailing list