diff options
author | Pawel Bylica <chfast@gmail.com> | 2015-06-24 12:49:42 +0000 |
---|---|---|
committer | Pawel Bylica <chfast@gmail.com> | 2015-06-24 12:49:42 +0000 |
commit | cc358128772e39675be1db35eb608bb2ce1bbe1a (patch) | |
tree | c47f04c416e49be0c180a8df0aca4cca89adc6b2 /llvm/lib/Object/COFFObjectFile.cpp | |
parent | 2480fe06f2cdb74170ec8d32a3c2930c519c90ac (diff) | |
download | llvm-cc358128772e39675be1db35eb608bb2ce1bbe1a.zip llvm-cc358128772e39675be1db35eb608bb2ce1bbe1a.tar.gz llvm-cc358128772e39675be1db35eb608bb2ce1bbe1a.tar.bz2 |
Fix instruction scheduling live register tracking
Summary:
This patch fixes PR23405 (https://llvm.org/bugs/show_bug.cgi?id=23405).
During a node unscheduling an entry in LiveRegGens can be replaced with a new value. That corrupts the live reg tracking and LiveReg* structure is not cleared as should be during unscheduling. Problematic condition that enforces Gen replacement is `I->getSUnit()->getHeight() < LiveRegGens[I->getReg()]->getHeight()`. This condition should be checked only if LiveRegGen was set in current node unscheduling.
Test Plan: Regression test included.
Reviewers: hfinkel, atrick
Reviewed By: atrick
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9993
llvm-svn: 240538
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions