diff options
Diffstat (limited to 'contrib/llvm/lib/Target/TargetSubtargetInfo.cpp')
-rw-r--r-- | contrib/llvm/lib/Target/TargetSubtargetInfo.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/contrib/llvm/lib/Target/TargetSubtargetInfo.cpp b/contrib/llvm/lib/Target/TargetSubtargetInfo.cpp index 10e8db5925de..386a813b057f 100644 --- a/contrib/llvm/lib/Target/TargetSubtargetInfo.cpp +++ b/contrib/llvm/lib/Target/TargetSubtargetInfo.cpp @@ -12,8 +12,8 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/CommandLine.h" -#include "llvm/Target/TargetSubtargetInfo.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/Target/TargetSubtargetInfo.h" using namespace llvm; //--------------------------------------------------------------------------- @@ -24,11 +24,12 @@ TargetSubtargetInfo::TargetSubtargetInfo() {} TargetSubtargetInfo::~TargetSubtargetInfo() {} // Temporary option to compare overall performance change when moving from the -// SD scheduler to the MachineScheduler pass pipeline. It should be removed -// before 3.4. The normal way to enable/disable the MachineScheduling pass -// itself is by using -enable-misched. For targets that already use MI sched -// (via MySubTarget::enableMachineScheduler()) -misched-bench=false negates the -// subtarget hook. +// SD scheduler to the MachineScheduler pass pipeline. This is convenient for +// benchmarking during the transition from SD to MI scheduling. Once armv7 makes +// the switch, it should go away. The normal way to enable/disable the +// MachineScheduling pass itself is by using -enable-misched. For targets that +// already use MI sched (via MySubTarget::enableMachineScheduler()) +// -misched-bench=false negates the subtarget hook. static cl::opt<bool> BenchMachineSched("misched-bench", cl::Hidden, cl::desc("Migrate from the target's default SD scheduler to MI scheduler")); @@ -38,17 +39,21 @@ bool TargetSubtargetInfo::useMachineScheduler() const { return enableMachineScheduler(); } +bool TargetSubtargetInfo::enableAtomicExpandLoadLinked() const { + return true; +} + bool TargetSubtargetInfo::enableMachineScheduler() const { return false; } -bool TargetSubtargetInfo::enablePostRAScheduler( - CodeGenOpt::Level OptLevel, - AntiDepBreakMode& Mode, - RegClassVector& CriticalPathRCs) const { - Mode = ANTIDEP_NONE; - CriticalPathRCs.clear(); - return false; +bool TargetSubtargetInfo::enableRALocalReassignment( + CodeGenOpt::Level OptLevel) const { + return true; +} + +bool TargetSubtargetInfo::enablePostMachineScheduler() const { + return getSchedModel()->PostRAScheduler; } bool TargetSubtargetInfo::useAA() const { |