llvm-6502/include/llvm/CodeGen
Michael Ilseman afe77f33b2 Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it.
A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173064 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-21 18:18:53 +00:00
..
PBQP Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Analysis.h Remove unused parameter. Also use the AttributeSet query methods instead of the Attribute query methods. 2013-01-18 21:50:24 +00:00
AsmPrinter.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CalcSpillWeights.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
CallingConvLower.h CallingConvLower.h: Use bitfields like unsigned:1 instead of bool:1 . 2013-01-07 11:13:51 +00:00
CommandFlags.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
DAGCombine.h Refactor DAGCombinerInfo. Change the different booleans that indicate if we are before or after different runs of DAGCo, with the CombineLevel enum. 2012-12-27 06:47:41 +00:00
DFAPacketizer.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
EdgeBundles.h Give a small negative bias to giant edge bundles. 2012-05-21 03:11:23 +00:00
FastISel.h Fall back to the selection dag isel to select tail calls. 2012-12-11 00:18:02 +00:00
FunctionLoweringInfo.h Remove unneeded includes from FunctionLoweringInfo.h. 2013-01-10 22:13:13 +00:00
GCMetadata.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
GCMetadataPrinter.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
GCs.h
GCStrategy.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
IntrinsicLowering.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
ISDOpcodes.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
JITCodeEmitter.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LatencyPriorityQueue.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LexicalScopes.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveInterval.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveIntervalAnalysis.h RegisterPressureTracker: unify virtual registers and physical regunits. 2012-12-05 21:37:47 +00:00
LiveIntervalUnion.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LiveRangeEdit.h Allow LiveRangeEdit to be created with a NULL parent. 2012-05-19 05:25:46 +00:00
LiveRegMatrix.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveStackAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LiveVariables.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineBasicBlock.h Use bidirectional bundle flags to simplify important functions. 2012-12-18 23:21:49 +00:00
MachineBlockFrequencyInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
MachineBranchProbabilityInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineCodeEmitter.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineCodeInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineConstantPool.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
MachineDominators.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineFrameInfo.h Stack Alignment: throw error if we can't satisfy the minimal alignment 2013-01-10 01:10:10 +00:00
MachineFunction.h Use ArrayRecycler for MachineInstr operand lists. 2013-01-05 05:00:09 +00:00
MachineFunctionAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineFunctionPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineInstr.h Allow hasProperty() to be called on bundle-internal instructions. 2013-01-10 18:42:44 +00:00
MachineInstrBuilder.h Add a getBundleEnd() function to go with the existing getBundleStart(). 2013-01-09 01:02:19 +00:00
MachineInstrBundle.h Add a getBundleEnd() function to go with the existing getBundleStart(). 2013-01-09 01:02:19 +00:00
MachineJumpTableInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineLoopInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineMemOperand.h Add MachineMemOperand::isUnordered(). 2012-08-29 21:08:52 +00:00
MachineModuleInfo.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MachineModuleInfoImpls.h Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. 2012-09-26 06:36:36 +00:00
MachineOperand.h Pack MachineOperand bitfields better. 2013-01-07 23:21:44 +00:00
MachinePassRegistry.h Allow targets to select the default scheduler by name. 2012-04-19 01:34:10 +00:00
MachinePostDominators.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineRegisterInfo.h Add MachineRegisterInfo::moveOperands(). 2013-01-05 04:38:12 +00:00
MachineRelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineScheduler.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineSSAUpdater.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
MachineTraceMetrics.h Move MachineTraceMetrics.h into include/llvm/CodeGen. 2013-01-17 01:06:04 +00:00
MachORelocation.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Passes.h Provide a place for targets to insert ILP optimization passes. 2013-01-17 00:58:38 +00:00
PseudoSourceValue.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
RegAllocPBQP.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
RegAllocRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegisterClassInfo.h Precompute some information about register costs. 2013-01-12 00:54:59 +00:00
RegisterPressure.h RegPressureTracker::dump(): Remove unnecessary argument. 2012-12-05 23:05:22 +00:00
RegisterScavenging.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ResourcePriorityQueue.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RuntimeLibcalls.h Add fp128 rtlib function names to LLVM 2013-01-08 17:09:59 +00:00
ScheduleDAG.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ScheduleDAGInstrs.h Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it. 2013-01-21 18:18:53 +00:00
ScheduleDFS.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ScheduleHazardRecognizer.h misched: Allow disabling scoreboard hazard checking for subtargets with a 2012-06-05 03:44:32 +00:00
SchedulerRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ScoreboardHazardRecognizer.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
SelectionDAG.h Funnel the actual TargetTransformInfo pass from the SelectionDAGISel 2013-01-05 12:32:17 +00:00
SelectionDAGISel.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
SelectionDAGNodes.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SlotIndexes.h Provide a common half-open interval map info implementation, and just 2012-12-27 11:29:17 +00:00
TargetLoweringObjectFileImpl.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
TargetSchedule.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ValueTypes.h Added 6 more value types: v32i1, v64i1, v32i16, v32i8, v64i8, v8f64 2012-12-24 10:03:57 +00:00
ValueTypes.td Added 6 more value types: v32i1, v64i1, v32i16, v32i8, v64i8, v8f64 2012-12-24 10:03:57 +00:00
VirtRegMap.h Remove VirtRegMap::getRegAllocPref(). 2012-12-04 00:35:59 +00:00