diff options
| author | 2018-04-06 14:26:03 +0000 | |
|---|---|---|
| committer | 2018-04-06 14:26:03 +0000 | |
| commit | bdabc2f19ffb9e20600dad6e8a300842a7bda50e (patch) | |
| tree | c50e7b2e5449b074651bb82a58517a8ebc4a8cf7 /gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp | |
| parent | Print a 'p' flag for file descriptors that were opened after pledge(2). (diff) | |
| download | wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.tar.xz wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.zip | |
Import LLVM 6.0.1 release including clang, lld and lldb.
"where is the kaboom?" deraadt@
Diffstat (limited to 'gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp')
| -rw-r--r-- | gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp b/gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp index f6d5bc80ddf..8693f344f9b 100644 --- a/gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp +++ b/gnu/llvm/lib/CodeGen/TargetSubtargetInfo.cpp @@ -11,11 +11,12 @@ // //===----------------------------------------------------------------------===// +#include "llvm/CodeGen/TargetSubtargetInfo.h" #include "llvm/ADT/Optional.h" #include "llvm/CodeGen/MachineInstr.h" +#include "llvm/CodeGen/TargetInstrInfo.h" #include "llvm/CodeGen/TargetSchedule.h" #include "llvm/MC/MCInst.h" -#include "llvm/Target/TargetSubtargetInfo.h" #include "llvm/Support/Format.h" #include "llvm/Support/raw_ostream.h" #include <string> @@ -37,6 +38,10 @@ bool TargetSubtargetInfo::enableAtomicExpand() const { return true; } +bool TargetSubtargetInfo::enableIndirectBrExpand() const { + return false; +} + bool TargetSubtargetInfo::enableMachineScheduler() const { return false; } @@ -50,6 +55,10 @@ bool TargetSubtargetInfo::enableRALocalReassignment( return true; } +bool TargetSubtargetInfo::enableAdvancedRASplitCost() const { + return false; +} + bool TargetSubtargetInfo::enablePostRAScheduler() const { return getSchedModel().PostRAScheduler; } @@ -93,9 +102,15 @@ std::string TargetSubtargetInfo::getSchedInfoStr(MCInst const &MCI) const { // that could be changed during the compilation TargetSchedModel TSchedModel; TSchedModel.init(getSchedModel(), this, getInstrInfo()); - if (!TSchedModel.hasInstrSchedModel()) + unsigned Latency; + if (TSchedModel.hasInstrSchedModel()) + Latency = TSchedModel.computeInstrLatency(MCI.getOpcode()); + else if (TSchedModel.hasInstrItineraries()) { + auto *ItinData = TSchedModel.getInstrItineraries(); + Latency = ItinData->getStageLatency( + getInstrInfo()->get(MCI.getOpcode()).getSchedClass()); + } else return std::string(); - unsigned Latency = TSchedModel.computeInstrLatency(MCI.getOpcode()); Optional<double> RThroughput = TSchedModel.computeInstrRThroughput(MCI.getOpcode()); return createSchedInfoStr(Latency, RThroughput); |
