This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
register Allocation
- From: Danish Samad <danishsamad at yahoo dot com>
- To: gcc at gcc dot gnu dot org, syed_rauf_ul_hassan at hotmail dot com
- Date: Tue, 12 Mar 2002 06:20:54 -0800 (PST)
- Subject: register Allocation
Hello
The problem I am getting is that I have a pattern for
addition of Single Integer value. When I give the half
intger values It uses subreg to load the values. and
then perform the single integer addition. The
unoptimized RTL is
(insn 30 28 31 (set (subreg:HI (reg:SI 45) 1)
(mem/f:HI (reg:SI 43) 0)) -1 (nil)
(nil))
(insn 33 31 34 (set (subreg:HI (reg:SI 46) 1)
(mem/f:HI (reg:SI 44) 0)) -1 (nil)
(nil))
(insn 34 33 36 (set (reg:SI 47)
(plus:SI (reg:SI 45)
(reg:SI 46))) -1 (nil)
(nil))
After GREG the RTL becomes
(insn 30 28 31 (set (reg:HI 1 r1)
(mem/f:HI (reg:SI 18 a2) 0)) 2 {*movhi_insn}
(nil)
(nil))
(note 31 30 33 "" NOTE_INSN_DELETED)
(insn 33 31 34 (set (reg:HI 3 r3)
(mem/f:HI (reg:SI 17 a1) 0)) 2 {*movhi_insn}
(nil)
(nil))
(insn 34 33 36 (set (reg:SI 0 r0)
(plus:SI (reg:SI 0 r0)
(reg:SI 2 r2))) 4 {addsi3} (nil)
(nil))
r1 should be r0 and r3 should be r2
What could be causing this problem
__________________________________________________
Do You Yahoo!?
Try FREE Yahoo! Mail - the world's greatest free email!
http://mail.yahoo.com/