On 05/19/14 00:38, Bin.Cheng wrote:
On Sat, May 17, 2014 at 12:52 AM, Mike Stump <mikest...@comcast.net> wrote:
On May 16, 2014, at 3:07 AM, Bin.Cheng <amker.ch...@gmail.com> wrote:
I don't see how regrename will help resolve [base+offset] false
dependencies. Can you explain? I'd expect effects from
hardreg-copyprop "commoning" a base register.
It's the register operand's false dependency, rather than the base's
one. Considering below simple case:
mov r1, #const1
store r1, [base+offset1]
mov r1, #const2
store r1, [base_offset2]
It should be renamed into:
mov r1, #const1
store r1, [base+offset1]
mov r2, #const2
store r2, [base_offset2]
Ah, but, what did this look like right before pass_web?
I don't think this would be a problem for pre-RA, generally GCC won't
try to reuse pseudo register in this way, right?
There's nothing which would prevent reuse of a pseudo in this manner;
for example, a backend might do something ugly like this in an expander
and we have to handle it properly.
jeff