summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/BranchFolding.h
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2011-01-14 21:11:41 +0000
committerAndrew Trick <atrick@apple.com>2011-01-14 21:11:41 +0000
commit9ccce77893136938b4cc1cad6c24d114fade9ee1 (patch)
tree4d7327cae3729e5315b839bd54c5f300c63b145f /llvm/lib/CodeGen/BranchFolding.h
parent8f5b2eb1e21f37d8a470fda4c8d1741ceb8b6d81 (diff)
downloadbcm5719-llvm-9ccce77893136938b4cc1cad6c24d114fade9ee1.tar.gz
bcm5719-llvm-9ccce77893136938b4cc1cad6c24d114fade9ee1.zip
Support for precise scheduling of the instruction selection DAG,
disabled in this checkin. Sorry for the large diffs due to refactoring. New functionality is all guarded by EnableSchedCycles. Scheduling the isel DAG is inherently imprecise, but we give it a best effort: - Added MayReduceRegPressure to allow stalled nodes in the queue only if there is a regpressure need. - Added BUHasStall to allow checking for either dependence stalls due to latency or resource stalls due to pipeline hazards. - Added BUCompareLatency to encapsulate and standardize the heuristics for minimizing stall cycles (vs. reducing register pressure). - Modified the bottom-up heuristic (now in BUCompareLatency) to prioritize nodes by their depth rather than height. As long as it doesn't stall, height is irrelevant. Depth represents the critical path to the DAG root. - Added hybrid_ls_rr_sort::isReady to filter stalled nodes before adding them to the available queue. Related Cleanup: most of the register reduction routines do not need to be templates. llvm-svn: 123468
Diffstat (limited to 'llvm/lib/CodeGen/BranchFolding.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud