mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Added MispredictPenalty to SchedMachineModel.
This replaces an existing subtarget hook on ARM and allows standard CodeGen passes to potentially use the property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161471 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -97,6 +97,9 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &CPU,
|
||||
if (!HasV6T2Ops && hasThumb2())
|
||||
HasV4TOps = HasV5TOps = HasV5TEOps = HasV6Ops = HasV6T2Ops = true;
|
||||
|
||||
// Keep a pointer to static instruction cost data for the specified CPU.
|
||||
SchedModel = getSchedModelForCPU(CPUString);
|
||||
|
||||
// Initialize scheduling itinerary for the specified CPU.
|
||||
InstrItins = getInstrItineraryForCPU(CPUString);
|
||||
|
||||
@@ -179,15 +182,7 @@ ARMSubtarget::GVIsIndirectSymbol(const GlobalValue *GV,
|
||||
}
|
||||
|
||||
unsigned ARMSubtarget::getMispredictionPenalty() const {
|
||||
// If we have a reasonable estimate of the pipeline depth, then we can
|
||||
// estimate the penalty of a misprediction based on that.
|
||||
if (isCortexA8())
|
||||
return 13;
|
||||
else if (isCortexA9())
|
||||
return 8;
|
||||
|
||||
// Otherwise, just return a sensible default.
|
||||
return 10;
|
||||
return SchedModel->MispredictPenalty;
|
||||
}
|
||||
|
||||
bool ARMSubtarget::enablePostRAScheduler(
|
||||
|
Reference in New Issue
Block a user