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 Switch the MachineOperand accessors back to the short names like 2008-10-03 15:45:36 +00:00
CallingConvLower.h Define CallSDNode, an SDNode subclass for use with ISD::CALL. 2008-09-13 01:54:27 +00:00
DAGISelHeader.h Make ISel ignore dead nodes. The DAGCombiner normally eliminates 2008-11-05 22:56:47 +00:00
DwarfWriter.h If we have a function with an unreachable statement such that the ending debug 2008-09-26 00:28:12 +00:00
ELFRelocation.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
FastISel.h Factor out the code for sign-extending/truncating gep indices 2008-12-08 07:57:47 +00:00
FileWriters.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
GCMetadata.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
GCMetadataPrinter.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
GCs.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
GCStrategy.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
IntrinsicLowering.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
LatencyPriorityQueue.h Fix some register-alias-related bugs in the post-RA scheduler liveness 2008-12-16 03:25:46 +00:00
LinkAllAsmWriterComponents.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
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 - Rewrite code that update register live interval that's split. 2008-10-29 05:06:14 +00:00
LiveStackAnalysis.h - Rewrite code that update register live interval that's split. 2008-10-29 05:06:14 +00:00
LiveVariables.h Revert the part of r59145 that changed the comment about 2008-11-12 23:24:15 +00:00
MachineBasicBlock.h Const-ify several TargetInstrInfo methods. 2008-10-16 01:49:15 +00:00
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 Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
MachineFrameInfo.h Extend X86's addFrameReference to add a MachineMemOperand for 2008-12-03 18:11:40 +00:00
MachineFunction.h Update VS projects. 2008-09-20 18:02:18 +00:00
MachineFunctionPass.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
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 Fix more -Wshorten-64-to-32 warnings. 2008-05-05 18:30:58 +00:00
MachineLocation.h Switch the MachineOperand accessors back to the short names like 2008-10-03 15:45:36 +00:00
MachineLoopInfo.h Use empty() instead of begin() == end(). 2008-08-14 18:13:49 +00:00
MachineMemOperand.h Change the FoldingSetNodeID usage for objects which carry 2008-08-20 15:58:01 +00:00
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 Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
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 Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
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 Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
RegisterCoalescer.h Remove uses of "llvm/Support/Debug.h" from LLVM include files, which 2008-07-07 18:14:29 +00:00
RegisterScavenging.h Fix RegScavenger::forward() to work on basic blocks containing exactly 2008-12-19 00:45:13 +00:00
RuntimeLibcalls.h Add intrinsics for log, log2, log10, exp, exp2. 2008-09-04 00:47:13 +00:00
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