llvm-6502/include/llvm/CodeGen
Dan Gohman 223942a420 Remove the code from the scheduler that commuted two-address
instructions to avoid copies, because TwoAddressInstructionPass
also does this optimization.  The scheduler's version didn't
account for live-out values, which resulted in spurious commutes
and missed opportunities.

Now, TwoAddressInstructionPass handles all the opportunities,
instead of just those that the scheduler missed. The result is
usually the same, though there are occasional trivial differences
resulting from the avoidance of spurious commutes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61611 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-03 18:01:46 +00:00
..
AsmPrinter.h Refactor a bunch of code out of AsmPrinter::EmitGlobalConstant into separate 2008-12-22 21:14:27 +00:00
BreakCriticalMachineEdge.h
CallingConvLower.h
DAGISelHeader.h
DwarfWriter.h
ELFRelocation.h
FastISel.h Factor out the code for sign-extending/truncating gep indices 2008-12-08 07:57:47 +00:00
FileWriters.h
GCMetadata.h
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
LatencyPriorityQueue.h Fix some register-alias-related bugs in the post-RA scheduler liveness 2008-12-16 03:25:46 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Move the scheduler constructor functions to SchedulerRegistry.h, to 2008-11-24 19:53:21 +00:00
LiveInterval.h Forgot to commit this file. 2008-12-28 21:57:02 +00:00
LiveIntervalAnalysis.h
LiveStackAnalysis.h
LiveVariables.h Revert the part of r59145 that changed the comment about 2008-11-12 23:24:15 +00:00
MachineBasicBlock.h
MachineCodeEmitter.h Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. 2008-12-10 02:32:19 +00:00
MachineConstantPool.h Replace a #include with a forward-declaration. 2008-12-03 01:53:18 +00:00
MachineDominators.h
MachineFrameInfo.h Extend X86's addFrameReference to add a MachineMemOperand for 2008-12-03 18:11:40 +00:00
MachineFunction.h
MachineFunctionPass.h
MachineInstr.h Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant. 2008-12-05 05:45:42 +00:00
MachineInstrBuilder.h Extend X86's addFrameReference to add a MachineMemOperand for 2008-12-03 18:11:40 +00:00
MachineJumpTableInfo.h
MachineLocation.h
MachineLoopInfo.h
MachineMemOperand.h
MachineModuleInfo.h Today the front-ends (llvm-gcc and clang) generate multiple llvm.dbg.compile_units to identify source file for various debug entities. Each llvm.dbg.compile_unit matches one file on the disk. However, the backend only supports one DW_TAG_compile_unit per .o file. The backend selects first compile_unit from the vector to construct DW_TAG_compile_unit entry, which is not correct in all cases. 2008-12-17 22:39:29 +00:00
MachineOperand.h Comment MO_FPImmediate and doxygenate surrounding comments. 2008-12-23 18:20:16 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Move createVirtualRegister out-of-line. 2008-12-08 04:54:11 +00:00
MachineRelocation.h Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. 2008-12-10 02:32:19 +00:00
MachORelocation.h
Passes.h Implement stack protectors as function attributes: "ssp" and "sspreq". 2008-11-13 01:02:14 +00:00
PseudoSourceValue.h Have PseudoSourceValue override Value::dump, so that it works 2008-12-03 21:37:21 +00:00
RegAllocRegistry.h
RegisterCoalescer.h
RegisterScavenging.h Fix RegScavenger::forward() to work on basic blocks containing exactly 2008-12-19 00:45:13 +00:00
RuntimeLibcalls.h
ScheduleDAG.h Rename BuildSchedUnits to BuildSchedGraph, and refactor the 2008-12-23 18:36:58 +00:00
ScheduleDAGInstrs.h Rename BuildSchedUnits to BuildSchedGraph, and refactor the 2008-12-23 18:36:58 +00:00
ScheduleDAGSDNodes.h Remove the code from the scheduler that commuted two-address 2009-01-03 18:01:46 +00:00
SchedulerRegistry.h Move the scheduler constructor functions to SchedulerRegistry.h, to 2008-11-24 19:53:21 +00:00
SelectionDAG.h Clean up the atomic opcodes in SelectionDAG. 2008-12-23 21:37:04 +00:00
SelectionDAGISel.h On x86 favors folding short immediate into some arithmetic operations (e.g. add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size. 2008-11-27 00:49:46 +00:00
SelectionDAGNodes.h Clean up the atomic opcodes in SelectionDAG. 2008-12-23 21:37:04 +00:00
ValueTypes.h Added support for vector widening. 2008-12-18 20:03:17 +00:00
ValueTypes.td Added support for vector widening. 2008-12-18 20:03:17 +00:00