aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
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
commitf697c8a19adf962a933b055383952e72789a0e20 (patch)
tree7639dabdbfe586b58714693cc519dc383272823a /lib/CodeGen/AsmPrinter/AsmPrinter.cpp
parentd0f56132cfa6e25fb9692e84ea12444c86b92ae4 (diff)
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123468 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
0 files changed, 0 insertions, 0 deletions