diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-11-05 01:19:35 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-11-05 01:19:35 +0000 |
commit | 54097836f31660bd5e84c34ee8c92d237844315f (patch) | |
tree | 3cade5142826b0a99e1ffd48b60cfcffdf1b5747 /lib/CodeGen/PostRASchedulerList.cpp | |
parent | 090780be1c94163ad7cb9368fdb1b23714b2518e (diff) | |
download | llvm-54097836f31660bd5e84c34ee8c92d237844315f.tar.gz llvm-54097836f31660bd5e84c34ee8c92d237844315f.tar.bz2 llvm-54097836f31660bd5e84c34ee8c92d237844315f.tar.xz |
Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86098 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PostRASchedulerList.cpp')
-rw-r--r-- | lib/CodeGen/PostRASchedulerList.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/PostRASchedulerList.cpp b/lib/CodeGen/PostRASchedulerList.cpp index d5edb36b44..3ed61a267f 100644 --- a/lib/CodeGen/PostRASchedulerList.cpp +++ b/lib/CodeGen/PostRASchedulerList.cpp @@ -770,7 +770,8 @@ void SchedulePostRATDList::ListScheduleTopDown( // just advance the current cycle and try again. DEBUG(errs() << "*** Stall in cycle " << CurCycle << '\n'); HazardRec->AdvanceCycle(); - ++NumStalls; + if (!IgnoreAntiDep) + ++NumStalls; } else { // Otherwise, we have no instructions to issue and we have instructions // that will fault if we don't do this right. This is the case for @@ -778,7 +779,8 @@ void SchedulePostRATDList::ListScheduleTopDown( DEBUG(errs() << "*** Emitting noop in cycle " << CurCycle << '\n'); HazardRec->EmitNoop(); Sequence.push_back(0); // NULL here means noop - ++NumNoops; + if (!IgnoreAntiDep) + ++NumNoops; } ++CurCycle; |