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)
commit3ca33acb95fca0489ccfc4c947dda3837f69c650
tree08ebdc0e9badaf7907044ef54090286f0f8ad452
parente145559b701009e1a89932a8bdff49b0fb553bd7
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.

llvm-svn: 167527
llvm/include/llvm/CodeGen/MachineScheduler.h
llvm/lib/CodeGen/MachineScheduler.cpp
llvm/test/CodeGen/X86/misched-balance.ll [new file with mode: 0644]