mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-12-13 00:21:07 +00:00
ARM: Enable MachineScheduler and disable PostRAScheduler for swift.
This is mostly done to disable the PostRAScheduler which optimizes for instruction latencies which isn't a good fit for out-of-order architectures. This also allows to leave out the itinerary table in swift in favor of the SchedModel ones. This change leads to performance improvements/regressions by as much as 10% in some benchmarks, in fact we loose 0.4% performance over the llvm-testsuite for reasons that appear to be unknown or out of the compilers control. rdar://20803802 documents the investigation of these effects. While it is probably a good idea to perform the same switch for the other ARM out-of-order CPUs, I limited this change to swift as I cannot perform the benchmark verification on the other CPUs. Differential Revision: http://reviews.llvm.org/D10513 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242500 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -206,6 +206,9 @@ struct MCSchedModel {
|
||||
/// scheduling class (itinerary class or SchedRW list).
|
||||
bool isComplete() const { return CompleteModel; }
|
||||
|
||||
/// Return true if machine supports out of order execution.
|
||||
bool isOutOfOrder() const { return MicroOpBufferSize > 1; }
|
||||
|
||||
unsigned getNumProcResourceKinds() const {
|
||||
return NumProcResourceKinds;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user