/// isInstr - Return true if this SUnit refers to a machine instruction as
/// opposed to an SDNode.
- bool isInstr() const { return !Node; }
+ bool isInstr() const { return Instr; }
/// setInstr - Assign the instruction for the SUnit.
/// This may be used during post-regalloc scheduling.
/// Check to see if any of the pending instructions are ready to issue. If
/// so, add them to the available queue.
void ScheduleDAGRRList::ReleasePending() {
- assert(!EnableSchedCycles && "requires --enable-sched-cycles" );
+ if (!EnableSchedCycles) {
+ assert(PendingQueue.empty() && "pending instrs not allowed in this mode");
+ return;
+ }
// If the available queue is empty, it is safe to reset MinAvailableCycle.
if (AvailableQueue->empty())
RestoreHazardCheckerBottomUp();
- if (EnableSchedCycles)
- ReleasePending();
+ ReleasePending();
++NumBacktracks;
}