aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/InstrSched/SchedPriorities.h15
-rw-r--r--lib/Target/SparcV9/InstrSched/SchedPriorities.h15
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/CodeGen/InstrSched/SchedPriorities.h b/lib/CodeGen/InstrSched/SchedPriorities.h
index 7cbd0d1259..78b685dadd 100644
--- a/lib/CodeGen/InstrSched/SchedPriorities.h
+++ b/lib/CodeGen/InstrSched/SchedPriorities.h
@@ -32,7 +32,9 @@ class Method;
class MachineInstr;
class SchedulingManager;
+//---------------------------------------------------------------------------
// Debug option levels for instruction scheduling
+
enum SchedDebugLevel_t {
Sched_NoDebugInfo,
Sched_PrintMachineCode,
@@ -42,6 +44,19 @@ enum SchedDebugLevel_t {
extern cl::Enum<SchedDebugLevel_t> SchedDebugLevel;
+//---------------------------------------------------------------------------
+// Function: instrIsFeasible
+//
+// Purpose:
+// Used by the priority analysis to filter out instructions
+// that are not feasible to issue in the current cycle.
+// Should only be used during schedule construction..
+//---------------------------------------------------------------------------
+
+bool instrIsFeasible(const SchedulingManager &S, MachineOpCode opCode);
+
+
+
struct NodeDelayPair {
const SchedGraphNode* node;
cycles_t delay;
diff --git a/lib/Target/SparcV9/InstrSched/SchedPriorities.h b/lib/Target/SparcV9/InstrSched/SchedPriorities.h
index 7cbd0d1259..78b685dadd 100644
--- a/lib/Target/SparcV9/InstrSched/SchedPriorities.h
+++ b/lib/Target/SparcV9/InstrSched/SchedPriorities.h
@@ -32,7 +32,9 @@ class Method;
class MachineInstr;
class SchedulingManager;
+//---------------------------------------------------------------------------
// Debug option levels for instruction scheduling
+
enum SchedDebugLevel_t {
Sched_NoDebugInfo,
Sched_PrintMachineCode,
@@ -42,6 +44,19 @@ enum SchedDebugLevel_t {
extern cl::Enum<SchedDebugLevel_t> SchedDebugLevel;
+//---------------------------------------------------------------------------
+// Function: instrIsFeasible
+//
+// Purpose:
+// Used by the priority analysis to filter out instructions
+// that are not feasible to issue in the current cycle.
+// Should only be used during schedule construction..
+//---------------------------------------------------------------------------
+
+bool instrIsFeasible(const SchedulingManager &S, MachineOpCode opCode);
+
+
+
struct NodeDelayPair {
const SchedGraphNode* node;
cycles_t delay;