[PATCH] Fix instruction scheduling live register tracking
chfast at gmail.com
Thu May 28 14:27:07 PDT 2015
On Thu, May 28, 2015 at 6:28 PM Andrew Trick <atrick at apple.com> wrote:
> On May 28, 2015, at 3:29 AM, Paweł Bylica <chfast at gmail.com> wrote:
> Then in backtracking, check BotReadyCycle instead of Height. There may be
> other bugs in backtracking that you're hitting, but that definitely looks
> suspect to me.
> I'll check that solution however I don't fully get it why we need to ever
> rewrite the Gen.
> During scheduling, we reset the Gen when scheduling a Def. That way, next
> time we see a read of that register, it becomes the current Gen.
> The Gen point is used to determine how far backtracking needs to go. Once
> we backtracking all the way to the Gen, we reset it to indicate that the
> register is no longer live. That way, we can schedule a different chain of
> instructions using the same physical register.
Thanks for you patience Andy.
I agree that asserts I introduced are wrong. It's a pity that there are no
test for this case in regression tests.
However I'm still not sure about the condition I removed:
I->getSUnit()->getHeight() < LiveRegGens[I->getReg()]->getHeight().
Can you give me an example when it does not hold.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits