Fix the aggressive anti-dep breaker's subregister definition handling

Hello Hal!

r 202294
Fix the aggressive anti-dep breaker’s subregister definition handling

There is a problem.

For example:
r0.64 = {r0.32, r1.32}
r2.64 = {r2.32, r3.32)

def1(r0.32)
def2(r1.32)
def3(r0.32)
use(r0.64)

Try to rename def1(r0.32). According current algo we get smth like:

def1(r2.32)
def2(r1.32)
def3(r0.32)
use(r2.64)

Because r0.64 was still not defined.

Patch to fix it:

Index: lib/CodeGen/AggressiveAntiDepBreaker.cpp

AggressiveAntiDepBreaker.cpp.patch (1.97 KB)

Oops! I’m sorry. Misprint:

KillIndices[*SubR] > KillIndices[*AI]