summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-09-18 03:32:57 +0000
committerAndrew Trick <atrick@apple.com>2012-09-18 03:32:57 +0000
commitee290ba35af88393ba18dd19e6e39d50c7872534 (patch)
treed9a868357a836807ddcdbac1e17c4e79fada1e45 /include
parentef1623fb594c69f678346e1f818ec6f661f3d65f (diff)
downloadllvm-ee290ba35af88393ba18dd19e6e39d50c7872534.tar.gz
llvm-ee290ba35af88393ba18dd19e6e39d50c7872534.tar.bz2
llvm-ee290ba35af88393ba18dd19e6e39d50c7872534.tar.xz
TableGen subtarget emitter. Remove unnecessary header dependence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164094 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetSubtargetInfo.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/include/llvm/Target/TargetSubtargetInfo.h b/include/llvm/Target/TargetSubtargetInfo.h
index 90b46edd9f..08c78f2564 100644
--- a/include/llvm/Target/TargetSubtargetInfo.h
+++ b/include/llvm/Target/TargetSubtargetInfo.h
@@ -14,15 +14,16 @@
#ifndef LLVM_TARGET_TARGETSUBTARGETINFO_H
#define LLVM_TARGET_TARGETSUBTARGETINFO_H
-#include "llvm/CodeGen/TargetSchedule.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/CodeGen.h"
namespace llvm {
+class MachineInstr;
class SDep;
class SUnit;
class TargetRegisterClass;
+class TargetSchedModel;
template <typename T> class SmallVectorImpl;
//===----------------------------------------------------------------------===//
@@ -44,13 +45,13 @@ public:
virtual ~TargetSubtargetInfo();
- /// Initialize a copy of the scheduling model for this subtarget.
- /// TargetSchedModel provides the interface for the subtarget's
- /// instruction scheduling information.
- void initSchedModel(TargetSchedModel &SchedModel,
- const TargetInstrInfo *TII) const {
- // getSchedModel returns the static MCSchedModel initialized by InitMCSubtargetInfo.
- SchedModel.init(*getSchedModel(), this, TII);
+ /// Resolve a SchedClass at runtime, where SchedClass identifies an
+ /// MCSchedClassDesc with the isVariant property. This may return the ID of
+ /// another variant SchedClass, but repeated invocation must quickly terminate
+ /// in a nonvariant SchedClass.
+ virtual unsigned resolveSchedClass(unsigned SchedClass, const MachineInstr *MI,
+ const TargetSchedModel* SchedModel) const {
+ return 0;
}
/// getSpecialAddressLatency - For targets where it is beneficial to