--- Comment #1 from belyshev at depni dot sinp dot msu dot ru 2007-02-21
13:30 ---
Confirmed, same problem on alphaev56-unknown-linux-gnu.
--
belyshev at depni dot sinp dot msu dot ru changed:
What|Removed |Added
--- Comment #2 from steven at gcc dot gnu dot org 2007-02-21 15:58 ---
Problem here is combine.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #3 from bonzini at gnu dot org 2007-02-21 16:03 ---
This unrelated patch fixes a very similar case for powerpc
unpatched:
or r0,r3,r28
rlwinm r0,r0,0,0xff
cmpwi cr7,r0,0
beq- cr7,L4929
patched: (r3 and r28 are both extended from QImode)
--- Comment #4 from bonzini at gnu dot org 2007-02-21 16:05 ---
It doesn't, but I confirm that the bug is target independent. A way to fix it
would be to do the transform in VRP, but I'll look at combine if time permits.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30904
--- Comment #5 from bonzini at gnu dot org 2007-02-21 16:11 ---
The first one is in the same EBB as the assignment. The second one isn't and
combine screws up. This is because of the way combine treats regs with one def
that dominates all uses, I talked to zadeck yesterday about that
--- Comment #6 from bonzini at gnu dot org 2007-02-21 16:23 ---
Created an attachment (id=13083)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13083action=view)
patch to fix the bug
The logic in trunk's combine with respect to uninitialized variables is
correct.
We have to look