diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-11-10 00:15:47 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-11-10 00:15:47 +0000 |
commit | cf89db135e3769e25144ad418eb45eb974a938ef (patch) | |
tree | 5fdc7e02ae1bbb6917eb402cc145e26c5e1760c3 /llvm/lib/CodeGen/PostRASchedulerList.cpp | |
parent | ccfdceb22c595d3aad67719197cb6da513da32c4 (diff) | |
download | bcm5719-llvm-cf89db135e3769e25144ad418eb45eb974a938ef.tar.gz bcm5719-llvm-cf89db135e3769e25144ad418eb45eb974a938ef.zip |
Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies.
llvm-svn: 86628
Diffstat (limited to 'llvm/lib/CodeGen/PostRASchedulerList.cpp')
-rw-r--r-- | llvm/lib/CodeGen/PostRASchedulerList.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/PostRASchedulerList.cpp b/llvm/lib/CodeGen/PostRASchedulerList.cpp index 3ed61a267f7..5917e76004a 100644 --- a/llvm/lib/CodeGen/PostRASchedulerList.cpp +++ b/llvm/lib/CodeGen/PostRASchedulerList.cpp @@ -216,13 +216,14 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) { // Check for explicit enable/disable of post-ra scheduling. TargetSubtarget::AntiDepBreakMode AntiDepMode = TargetSubtarget::ANTIDEP_NONE; + TargetSubtarget::ExcludedRCVector ExcludedRCs; if (EnablePostRAScheduler.getPosition() > 0) { if (!EnablePostRAScheduler) return false; } else { // Check that post-RA scheduling is enabled for this target. const TargetSubtarget &ST = Fn.getTarget().getSubtarget<TargetSubtarget>(); - if (!ST.enablePostRAScheduler(OptLevel, AntiDepMode)) + if (!ST.enablePostRAScheduler(OptLevel, AntiDepMode, ExcludedRCs)) return false; } @@ -243,7 +244,7 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) { (ScheduleHazardRecognizer *)new SimpleHazardRecognizer(); AntiDepBreaker *ADB = ((AntiDepMode == TargetSubtarget::ANTIDEP_ALL) ? - (AntiDepBreaker *)new AggressiveAntiDepBreaker(Fn) : + (AntiDepBreaker *)new AggressiveAntiDepBreaker(Fn, ExcludedRCs) : ((AntiDepMode == TargetSubtarget::ANTIDEP_CRITICAL) ? (AntiDepBreaker *)new CriticalAntiDepBreaker(Fn) : NULL)); |