MachineScheduler: Skip acyclic latency heuristic for in-order cores
authorMatthias Braun <matze@braunis.de>
Wed, 12 Apr 2017 18:09:05 +0000 (18:09 +0000)
committerMatthias Braun <matze@braunis.de>
Wed, 12 Apr 2017 18:09:05 +0000 (18:09 +0000)
commit99551053bd8321d6be10bed3a92e50318214cf81
treeaf7024521da02c97429f337efb1ffc0559fcd376
parentb0076fe8b4cb821faf766f7fc1c442e5f294ebdc
MachineScheduler: Skip acyclic latency heuristic for in-order cores

The current heuristic is triggered on `InFlightCount > BufferLimit`
which isn't really helpful on in-order cores where BufferLimit is zero.

Note that we already get latency hiding effects for in order cores
by instructions staying in the pending queue on stalls; The additional
latency scheduling heuristics only have minimal effects after that while
occasionally increasing register pressure too much resulting in extra
spills.

My motivation here is additional spills/reloads ending up in a loop in
464.h264ref / BlockMotionSearch function resulting in a 4% overal
regression on an in order core. rdar://30264380

llvm-svn: 300083
llvm/lib/CodeGen/MachineScheduler.cpp