misched: Heuristics based on the machine model.
authorAndrew Trick <atrick@apple.com>
Wed, 7 Nov 2012 07:05:09 +0000 (07:05 +0000)
committerAndrew Trick <atrick@apple.com>
Wed, 7 Nov 2012 07:05:09 +0000 (07:05 +0000)
commit3b87f6204fe094610282eea4c8ad7ea4e331d8db
treecb770578550c82d96007f8a0f6525a10f9e17bf6
parent881a05b46c28299046bd0dc3d0b8c6677e68a4d7
misched: Heuristics based on the machine model.

misched is disabled by default. With -enable-misched, these heuristics
balance the schedule to simultaneously avoid saturating processor
resources, expose ILP, and minimize register pressure. I've been
analyzing the performance of these heuristics on everything in the
llvm test suite in addition to a few other benchmarks. I would like
each heuristic check to be verified by a unit test, but I'm still
trying to figure out the best way to do that. The heuristics are still
in considerable flux, but as they are refined we should be rigorous
about unit testing the improvements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167527 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineScheduler.h
lib/CodeGen/MachineScheduler.cpp
test/CodeGen/X86/misched-balance.ll [new file with mode: 0644]