# Changeset View

Changeset View

# Standalone View

Standalone View

# lib/Target/PowerPC/PPCScheduleP7.td

Show First 20 Lines • Show All 376 Lines • ▼ Show 20 Lines | |||||

// P7 machine model for scheduling and other instruction cost heuristics. | // P7 machine model for scheduling and other instruction cost heuristics. | ||||

def P7Model : SchedMachineModel { | def P7Model : SchedMachineModel { | ||||

let IssueWidth = 6; // 4 (non-branch) instructions are dispatched per cycle. | let IssueWidth = 6; // 4 (non-branch) instructions are dispatched per cycle. | ||||

// Note that the dispatch bundle size is 6 (including | // Note that the dispatch bundle size is 6 (including | ||||

// branches), but the total internal issue bandwidth per | // branches), but the total internal issue bandwidth per | ||||

// cycle (from all queues) is 8. | // cycle (from all queues) is 8. | ||||

let MinLatency = 0; // Out-of-order dispatch. | |||||

let LoadLatency = 3; // Optimistic load latency assuming bypass. | let LoadLatency = 3; // Optimistic load latency assuming bypass. | ||||

// This is overriden by OperandCycles if the | // This is overriden by OperandCycles if the | ||||

// Itineraries are queried instead. | // Itineraries are queried instead. | ||||

let MispredictPenalty = 16; | let MispredictPenalty = 16; | ||||

// Try to make sure we have at least 10 dispatch groups in a loop. | // Try to make sure we have at least 10 dispatch groups in a loop. | ||||

let LoopMicroOpBufferSize = 40; | let LoopMicroOpBufferSize = 40; | ||||

let CompleteModel = 0; | let CompleteModel = 0; | ||||

let Itineraries = P7Itineraries; | let Itineraries = P7Itineraries; | ||||

} | } | ||||