llvm-6502/lib
Andrew Trick f697c8a19a 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
2011-01-14 21:11:41 +00:00
..
Analysis Turn X-(X-Y) into Y. According to my auto-simplifier this is the most common 2011-01-14 15:26:10 +00:00
Archive Fix Whitespace. 2011-01-10 02:34:40 +00:00
AsmParser Reject uses of unnamed_addr in declarations. 2011-01-13 01:30:30 +00:00
Bitcode FixedNumOperandTraits and VariadicOperandTraits assumed that, given a 2011-01-11 15:07:38 +00:00
CodeGen Support for precise scheduling of the instruction selection DAG, 2011-01-14 21:11:41 +00:00
CompilerDriver Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists. 2011-01-10 02:34:23 +00:00
ExecutionEngine Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there. 2011-01-10 12:39:04 +00:00
Linker Keep unnamed_addr when linking. 2011-01-13 05:12:34 +00:00
MC Completed :lower16: / :upper16: support for movw / movt pairs on Darwin. 2011-01-14 02:38:49 +00:00
Object
Support Support/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink. 2011-01-12 23:55:06 +00:00
Target revert my fastisel patch again which apparently still gives the 2011-01-14 06:14:33 +00:00
Transforms switch SRoA to use LoadAndStorePromoter instead of its own copy of the code. 2011-01-14 19:50:47 +00:00
VMCore Remove casts between Value** and Constant**, which won't work if a 2011-01-14 08:07:43 +00:00
Makefile