[Bug middle-end/25399] Another bogus 'clobbered by longjmp' message

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Dec 13 22:33:00 GMT 2005



------- Comment #1 from pinskia at gcc dot gnu dot org  2005-12-13 22:33 -------
Actually reading the RTL, it would not help register pressure at all since the
set is done right before the call to bar and is not pull out of the loop.  
What is happening is that u is being assigned a pesdu register and not just a
stack slot and the reason why it does not know it is set only once and not used
after is because at the point we run life analysis, we have the following RTL:
(insn:HI 76 77 55 0 (set (reg/v:SI 120 [ u ])
        (const_int 0 [0x0])) 326 {*movsi_internal1} (nil)
    (nil))

....
// BEGIN LOOP

(insn:HI 14 78 15 2 (set (reg:SI 121)
        (const_int 0 [0x0])) 326 {*movsi_internal1} (nil)
    (nil))

(insn:HI 15 14 18 2 (set (zero_extract:SI (reg/v:SI 120 [ u ])
            (const_int 16 [0x10])
            (const_int 0 [0x0]))
        (reg:SI 121)) 160 {insvsi} (insn_list:REG_DEP_TRUE 14 (nil))
    (nil))

(insn:HI 18 15 20 2 (set (zero_extract:SI (reg/v:SI 120 [ u ])
            (const_int 16 [0x10])
            (const_int 16 [0x10]))
        (reg:SI 121)) 160 {insvsi} (insn_list:REG_DEP_TRUE 15 (nil))
    (expr_list:REG_DEAD (reg:SI 121)
        (nil)))


But we have not simplified that down to just r120 = 0.

Which we do in combine.  Life analysis adds the r120 in the first BB as it was
being used uninitialized.

Confirmed, not a regression.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |minor
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
      Known to fail|                            |3.3.3 4.1.0 4.0.0
   Last reconfirmed|0000-00-00 00:00:00         |2005-12-13 22:33:16
               date|                            |


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



More information about the Gcc-bugs mailing list