llvm-6502/include/llvm/CodeGen
Jakob Stoklund Olesen df30cf9e61 Transpose the calculation of spill weights such that we are calculating one
register at a time. This turns out to be slightly faster than iterating over
instructions, but more importantly, it allows us to compute spill weights for
new registers created after the spill weight pass has run.

Also compute the allocation hint at the same time as the spill weight. This
allows us to use the spill weight as a cost metric for copies, and choose the
most profitable hint if there is more than one possibility.

The new hints provide a very small (< 0.1%) but universal code size improvement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110631 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10 00:02:26 +00:00
..
Analysis.h Move several SelectionDAG-independent utility functions out of the 2010-04-21 01:22:34 +00:00
AsmPrinter.h Tidy some #includes and forward-declarations, and move the C binding code 2010-08-07 00:43:20 +00:00
BinaryObject.h
CalcSpillWeights.h Transpose the calculation of spill weights such that we are calculating one 2010-08-10 00:02:26 +00:00
CallingConvLower.h Fix eabi calling convention when a 64 bit value shadows r3. 2010-08-06 15:35:32 +00:00
FastISel.h Delete fast-isel's trivial load optimization; it breaks debugging because 2010-07-14 17:25:37 +00:00
FunctionLoweringInfo.h Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
GCMetadata.h Trailing whitespace. 2010-07-01 01:00:22 +00:00
GCMetadataPrinter.h Trailing whitespace. 2010-07-01 01:00:22 +00:00
GCs.h
GCStrategy.h
IntrinsicLowering.h
ISDOpcodes.h When splitting a VAARG, remember its alignment. 2010-06-26 18:22:20 +00:00
JITCodeEmitter.h Add a "PadTo" field to the emitULEB128Bytes method. This will pad out to the 2010-04-18 00:51:49 +00:00
LatencyPriorityQueue.h Eliminate the use of PriorityQueue and just use a std::vector, 2010-05-26 18:52:00 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Remove the local register allocator. 2010-06-15 21:58:33 +00:00
LiveInterval.h Transpose the calculation of spill weights such that we are calculating one 2010-08-10 00:02:26 +00:00
LiveIntervalAnalysis.h Transpose the calculation of spill weights such that we are calculating one 2010-08-10 00:02:26 +00:00
LiveStackAnalysis.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
LiveVariables.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
MachineBasicBlock.h Add a getFirstNonPHI utility function. 2010-07-07 14:33:51 +00:00
MachineCodeEmitter.h
MachineCodeInfo.h
MachineConstantPool.h Add const qualifiers to CodeGen's use of LLVM IR constructs. 2010-04-15 01:51:59 +00:00
MachineDominators.h
MachineFrameInfo.h It's better to have the arrays, which would trigger the creation of stack 2010-07-27 01:55:19 +00:00
MachineFunction.h Remove double-def checking from MachineVerifier, so a register does not have to 2010-08-05 18:59:59 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
MachineInstr.h Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and 2010-07-16 22:20:36 +00:00
MachineInstrBuilder.h Add const qualifiers to CodeGen's use of LLVM IR constructs. 2010-04-15 01:51:59 +00:00
MachineJumpTableInfo.h Add explicit keywords. 2010-06-18 19:04:37 +00:00
MachineLocation.h
MachineLoopInfo.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
MachineMemOperand.h
MachineModuleInfo.h Revert r108369, sorting llvm.dbg.declare information by source position, 2010-07-16 17:54:27 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Add a TargetRegisterInfo::composeSubRegIndices hook with a default 2010-05-28 18:18:53 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Begin implementation of an inline spiller. 2010-06-29 23:58:39 +00:00
MachineRelocation.h
MachineSSAUpdater.h Combine the implementations of the core part of the SSAUpdater and 2010-05-04 23:18:19 +00:00
MachORelocation.h
ObjectCodeEmitter.h
Passes.h Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer 2010-08-09 23:59:04 +00:00
PostRAHazardRecognizer.h Add missing include to unbreak the build. 2010-06-14 22:44:26 +00:00
ProcessImplicitDefs.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
PseudoSourceValue.h
RegAllocRegistry.h
RegisterCoalescer.h Be more forgiving when calculating alias interference for physreg coalescing. 2010-07-06 20:31:51 +00:00
RegisterScavenging.h After r107880, findSurvivorReg() no longer needs to be public. 2010-07-08 17:27:23 +00:00
RuntimeLibcalls.h back-end libcall handling for ATOMIC_SWAP (__sync_lock_test_and_set) 2010-06-18 23:03:10 +00:00
ScheduleDAG.h Change push_all to a non-virtual function and implement it in the 2010-05-26 01:10:55 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h Add an ILP scheduler. This is a register pressure aware scheduler that's 2010-07-24 00:39:05 +00:00
SelectionDAG.h Fix va_arg for doubles. With this patch VAARG nodes always contain the 2010-07-11 04:01:49 +00:00
SelectionDAGISel.h Reapply bottom-up fast-isel, with several fixes for x86-32: 2010-07-10 09:00:22 +00:00
SelectionDAGNodes.h Move ArgFlagsTy, OutputArg, and InputArg out of SelectionDAGNodes.h and 2010-07-07 15:28:42 +00:00
SlotIndexes.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
TargetLoweringObjectFileImpl.h More data/parsing support for tls directives. Add a few more testcases 2010-05-17 22:53:55 +00:00
ValueTypes.h Fix enum to address array bounds regression. 2010-05-18 21:22:12 +00:00
ValueTypes.td Adding a v8i64 512-bit vector type. This will be used to model ARM NEON intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. 2010-05-13 23:55:47 +00:00